我对python和编程很新,但已经注册了一些课程来提高我的知识。在学习时考虑到“目标”是非常重要的,我的其中一个就是成功地抓住并操纵体育数据。
我想从https://www.britishhorseracing.com/racing/results/中删除结果,但看起来它是通过JS动态加载数据:
这里看起来有很多数据,结果可以追溯到20年左右,加上当天每个赛马场的多场比赛。从我读过的内容来看,selenium和beautifulsoup可以在这里提供一些解决方案,但在我开始试验之前,我想和你们一起检查这个目标是多么现实/是否甚至可以通过网站如何构建数据以及如何指出开始?
非常感谢任何帮助。
由于
答案 0 :(得分:-1)
我对Selenium或BeautifulSoup不太熟悉,但还有其他与JavaScript相关的网络抓取工具。我知道的是NightmareJS,PhantomJS和ZombieJS(所有与恐怖有关的哈哈)。 NightmareJS运行和电子Chromium实例,PhantomJS是selenium的javascript包装器,zombiejs是一个原始节点解决方案。我个人会推荐使用NightmareJS。
但是,如果你需要在一个完全不同的球场服务器上运行NightmareJS。 NightmareJS要求有图形界面。有些模块允许在终端实例上运行NightmareJS。如果宁愿避免这种情况,那么你应该在服务器上安装PhantomJS并使用它。
对于梦魇JS,有一个滚动选项,可能会触发其余的数据加载。
Here is an issue found of github. Some solutions are provided there.
如果你宁愿使用像selenium或python这样的东西,I'm pretty sure there ought to be some documentation describing how to scroll a page。
我原本打算说你可以通过查看开发人员网络工具来使用BHA所做的API网络调用,但是快速查看API需要对API进行一些身份验证。