如何使用python废弃动态网站

时间:2017-04-06 10:09:23

标签: python ajax dynamic screen-scraping

我从抓取开始,我正在尝试开始使用具有动态内容的网页抓取功能。首先,我想试试这个网站

我想拿起桌子

Date Tournament Surface Rd Rk vRk得分更多DR A%DF%1stIn 1st%2nd%BPSvd时间

1 个答案:

答案 0 :(得分:0)

用于抓取动态网站我建议您阅读selenium,模拟浏览器交互并能够动态更改DOM元素。

https://pypi.python.org/pypi/selenium

他们有一些起始示例,并且有一个名为SeleniumIDE的firefox插件,允许您生成测试,您可以从中开始学习如何执行您想要的操作。

https://addons.mozilla.org/pt-pt/firefox/addon/selenium-ide/

SeleniumIDE不仅允许您从中创建python单元测试,还可以创建JUnit和其他语言。

以下是https://pypi.python.org/pypi/selenium

的示例
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

browser = webdriver.Firefox()

browser.get('http://www.yahoo.com')
assert 'Yahoo!' in browser.title

elem = browser.find_element_by_name('p')  # Find the search box
elem.send_keys('seleniumhq' + Keys.RETURN)

browser.quit()

这允许您在yahoo上进行搜索并像在浏览器中一样发送查询seleniumhq。

如果你想检索一个值,而不仅仅是使用find_element_by_id,name等..并获取它的文本,html等。

另一件事,如果这是为了刮掉大量的DOM页面,Firefox webdriver可能不是最好的解决方案。在这种情况下,最好的选择是完全无头,像phantomjs这样的网络驱动程序是你最好的选择。