Python使用不变的URL和JS链接来抓取页面

时间:2015-10-19 14:44:16

标签: python web-scraping urllib

有没有办法超越第一页:

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:&quot;mainForm:j_idt341&quot;,p:&quot;mainForm&quot;,u:&quot;mainForm:result_table mainForm:pageNav mainForm:eventAthleteDetailsDialog&quot;,onco:function(xhr,status,args){hideDetails('athlete-popup');showDetails('event-popup');scrollToTopOfElement('mainForm\\:result_table');;}});return false;"></a>

任何人都可以指出我正确的方向走过这一步并刮掉每一页。

1 个答案:

答案 0 :(得分:0)

我认为你可以毫不费力地使用Selenium。按钮的id遵循“mainForm:j_idt336: 0 :j_idt338”模式,递增。您可以通过ID找到Selenium中的按钮,您可以对待“&gt;”按钮单独向前移动,也由其ID。 ids似乎以某种方式生成,但您可以使您的selenium脚本将该格式作为参数,并创建另一个脚本只是为了获取该ID格式。 另请查看mechanize