有没有办法超越第一页:
https://www.sportstats.ca/display-results.xhtml?raceid=23666
我过去曾尝试过Selenium并取得了不同程度的成功。我发现它非常沉重,有时它不起作用,有时它会挂起。如果可能的话我宁愿避免使用urllib.request并使用标题/ cookie来查找我正在寻找的数据。
这些是障碍:
1)当您转到另一个页面时,URL不会改变。
2)转到下一页(例如)的链接是JS或其他东西,并且不容易处理:
<li><a id="mainForm:j_idt341" href="#" class="ui-commandlink ui-widget fa fa-angle-right" onclick="PrimeFaces.ab({s:"mainForm:j_idt341",p:"mainForm",u:"mainForm:result_table mainForm:pageNav mainForm:eventAthleteDetailsDialog",onco:function(xhr,status,args){hideDetails('athlete-popup');showDetails('event-popup');scrollToTopOfElement('mainForm\\:result_table');;}});return false;"></a>
任何人都可以指出我正确的方向走过这一步并刮掉每一页。
答案 0 :(得分:0)
我认为你可以毫不费力地使用Selenium。按钮的id遵循“mainForm:j_idt336: 0 :j_idt338”模式,递增。您可以通过ID找到Selenium中的按钮,您可以对待“&gt;”按钮单独向前移动,也由其ID。 ids似乎以某种方式生成,但您可以使您的selenium脚本将该格式作为参数,并创建另一个脚本只是为了获取该ID格式。 另请查看mechanize。