我从抓取开始,我正在尝试开始使用具有动态内容的网页抓取功能。首先,我想试试这个网站
我想拿起桌子
Date Tournament Surface Rd Rk vRk得分更多DR A%DF%1stIn 1st%2nd%BPSvd时间
答案 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这样的网络驱动程序是你最好的选择。