【问题标题】:How to scrape a dynamic web site with python如何用python抓取一个动态网站
【发布时间】:2017-09-01 07:13:51
【问题描述】:

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

我想拿起桌子

日期锦标赛表面 Rd Rk vRk 得分更多 DR A% DF% 1stIn 1st% 2nd% BPSvd 时间

【问题讨论】:

  • 如果您已经开始使用 Scraping。我建议你看看:scrapy.org。 Scrapy 框架。这对你来说将是一个好的开始。而且,正如@Andre 所提到的,您可以将 selenium 用于动态内容。

标签: python ajax dynamic screen-scraping


【解决方案1】:

对于抓取动态网站,我建议您阅读 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 这样的 webdriver 是最好的选择。

【讨论】:

  • 有什么例子吗?感谢您的建议
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-06
  • 2010-09-17
  • 1970-01-01
相关资源
最近更新 更多