如果我们转到链接:https://www.openml.org/t/31#!taskruns,你会看到有大约400k的结果,我正在尝试使用Python 3.6.5和Selenium从所有这些结果中获取关键信息。附件是我目前拥有的代码。
Picture of Code and Results它适用于前300个结果
我的问题是,我只得到前300个结果。如果你继续向下滚动链接,你会注意到有超过300个结果,我使用selenium因为我认为它可以解析动态信息(即你向下滚动的结果越多)
我的想法是,我希望它解析此页面上的所有信息,直到它到达“加载更多...没有加载?现在转到下一个结果...”然后继续转到下一页并执行相同的操作,直到所有400k结果都被废弃。
我提供的链接的HTML只有200个结果,然后它包含指向下一个200
的链接DB::selectRaw()
我可以以某种方式创建一个LOOP来读取HTML并废弃前200个结果,然后转到下一个200的xpath并继续这样做直到所有结果都被废弃?
编辑:相关代码是:(我离开屏幕截图,以便您看到我目前获得的输出)
<a href="search?type=run&from=300&q=run_task.task_id%3A31">Not loading? Go to the next results now.</a>
答案 0 :(得分:0)
我认为你遇到了动态呈现的页面。执行某些操作后,将呈现除前300行以外的其余行(例如,按下下一个按钮或移动滚动条)。
如果您查看网络流量,下面是发送的HTTP请求之一:
https://www.openml.org/search?type=run&from=100&q=run_task.task_id%3A31&dataonly=1
这可能是通过jQuery库以AJAX方式解决的。
如果您想要抓取数据而不是点击主页面,我建议您使用AJAX查询。
免责声明:网站可能随时改变后端服务的运作方式。