python - 尝试获取通过javascript生成的网站的标题

标签 python selenium

当我加载一个网站时,它的标题会持续一秒钟“正在加载...”,直到它更改为通过 javascript 获取的不同标题。在 python 中,我试图获取生成的标题。

我尝试过使用 selenium 和 PhantomJS,但遇到了很多问题。

from selenium import webdriver
driver = webdriver.PhantomJS(executable_path='/usr/local/lib/phantoms/bin/phantomjs')
driver.get(www.google.com)
p_element = driver.find_element_by_id(id='intro-text')
print(p_element.text)

这表明对 PhantomJS 的支持已被弃用,所以我不确定还能做什么,或者是否有更简单的方法来获得我需要的结果。

最佳答案

使用 Firefox 或 Chrome 等浏览器,然后使用驱动程序的 title 属性

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://www.google.com")
print(driver.title)

如果标题短暂显示“正在加载...”,那么您可以循环获取标题,直到不再显示“正在加载...”

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://www.google.com")
while driver.title == 'Loading...':  //Should loop here until title changes
     pass
print(driver.title)

我的 python 生锈了,但这应该很接近。

关于python - 尝试获取通过javascript生成的网站的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55405350/

相关文章:

python - 如何确定通过 os.system 启动的进程的 pid

selenium - protractor/selenium 开始忽略 protractor.conf.js 中的 chrome 选项 (chromeOptions)

python - 使用 Selenium Webdriver (Python) 循环访问链接

python - 无法从 flower.command 导入名称 FlowerCommand

Python API 包装设计模式

python - Popen subprocess.PIPE 及其用途

c# - 如何使用 XPath 和使用参数获取值?

python - 如何确保 urllib.urlretrieve 以非交互方式运行?

ruby-on-rails - Cucumber/Capybara -- 如何获取当前执行的主机和端口

php - Selenium RC 和 PHP 初学者