如何从Python中的selenium.webdriver获取html?

时间:2015-07-27 09:51:05

标签: javascript python html selenium

感谢您的关注,对不起我的英语不好。

当我在输入框中输入一些单词并点击时,我正在从http://flvxz.com/获取html。它就像:

  • 加载Yahoo主页
  • 搜索"某事" (输入someword并单击按钮)
  • 获取返回html

我的网站通过javaScrip

返回消息

这是我的代码

browser = webdriver.Firefox()

browser.get('http://flvxz.com/')

input_box = browser.find_element_by_id("videoPageURI")  # Find the search box
button = browser.find_element_by_id("fetchButton")  # find the button

input_box.send_keys(url)  # input some string
button.click()  # click
那么,我怎样才能获得新的HTML?我尝试如下,不工作。

html = browser.find_element_by_tag_name('html').text();

我的问题:

  1. 我怎样才能获得HTML?
  2. 有没有更好的方法或工具来做这个jop(我不喜欢它打开 窗口,但我喜欢它控制浏览器的方式)?
  3. 非常感谢,我正在提高英语水平......

1 个答案:

答案 0 :(得分:1)

第1点。如何获取HTML代码:

首先,您可能需要等到页面完全加载(请参阅this article

然后您需要做的就是访问page_source属性:

html = browser.page_source

第2点。有更好的方法:

据我所知,这是使用Selenium进行此操作的正确方法。 有其他方法可以在页面中找到所需的元素,但在性能方面不会有太大变化。

如果您不需要查看显示的实际页面,我建议使用无头浏览器(例如PhantomJS)而不是Firefox

driver=webdriver.PhantomJS('your pahtomjs exe file location')

有关详细信息,请参阅this SO QAthis tutorial关于如何使用python

设置PhantomJS