【发布时间】:2017-08-23 07:43:35
【问题描述】:
我想创建一个包含 2016 年纽约马拉松赛跑者信息的数据库 (http://results.nyrr.org/event/M2016/finishers)。这是一个大量 javascript 的网站,需要为每个跑步者点击每个“扩展结果”来加载他们的信息。如您所见,有超过 50,000 名跑步者,因此这项任务并不容易。
我一直在尝试使用 Python-selenium 来做到这一点。首先,我单击“显示更多”,直到获得所有跑步者的列表。然后,我点击了每个跑者的“Expand Results”按钮,最后使用 BeautifulSoup 来获取我想要的信息。这种方法的问题是它非常慢并且会出错,因为有时没有按钮可以点击。
我想问一下有哪些方法可以做到这一点。有没有更好的方法来制作这个数据库?任何有关更好方法或如何改进我的方法的建议将不胜感激。
【问题讨论】:
-
进入浏览器的网络面板,查看展开结果时发送的请求,复制它。不涉及硒。
-
似乎 ** results.nyrr.org/api/runners/finishers (POST) ** 正在使用 ** "pageSize":51 (in payload) ** 如果您只想验证结果的数量,您可以更改此数字
-
@Ryan 我能够执行展开结果时发送的 request.post 。但是,在响应上使用 BeautifulSoup 后,似乎数据不存在,我找不到它。
标签: javascript python selenium-webdriver web-scraping