Python - 单击链接时抓取数据不会更改 URL

标签 python python-2.7 web-scraping

我想从这里抓取数据: http://finance.yahoo.com/stock-center/ 在该页面中有一个标题为“市场插入者”的部分,其下有 3 列:“最活跃者”、“上涨者百分比”、“下跌者百分比”,每一列都可以点击。 该部分列出了 10 只股票。另外,在第 10 只股票的末尾有一个可点击的矩形“加载 10 只以上”。

我想要做的是单击“% Gainers”,同时单击“Load 10 more”,查看前 20 个增益者的列表并在 Python 中抓取数据。然而,这两次点击之后,URL 与之前相同。

非常感谢您对此提供的任何帮助。

最佳答案

这是动态 html 生成,是通过一些 javascript 文件完成的。典型的抓取工具(beautifulsoup4、scrapy)不会拾取此内容,因为它只加载初始内容。您将需要使用 Web 驱动程序,例如 Selenium。它模拟用户点击,这很棒,因为它调用 javascript 文件,并生成必要的 html。然后你可以使用beautifulsoup4之类的东西来拾取并抓取它。

有关 Selenium 的信息:http://www.seleniumhq.org/projects/webdriver/http://selenium.googlecode.com/svn/trunk/docs/api/py/index.html

谷歌搜索“python selenium web scraping”会产生大量博客和教程来帮助您入门。

关于Python - 单击链接时抓取数据不会更改 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32515082/

相关文章:

python - 为什么 lxml 找不到这个类?

python - 允许 python 文件自行导入有什么好处

python - Python 子进程在什么情况下获得 SIGPIPE?

python - 对 Pandas 数据框执行复杂搜索的最快方法

python - 又是 : Installing Z3 + Python on Windows

许多参数的python线程应用程序错误

python - 使用 Python 解析文本文件

python - 单击链接后查找 URL

javascript - 从下拉菜单中逐页阅读 - 在第二页找不到下拉菜单

python - 当存在 NaN 时,matplotlib scatter 会改变颜色代码