我想从这里抓取数据: 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/