【问题标题】:Python scrape page with unchanging URL and JS links具有不变 URL 和 JS 链接的 Python 抓取页面
【发布时间】:2015-10-19 14:44:16
【问题描述】:

有什么办法可以刮到第一页以外的地方:

https://www.sportstats.ca/display-results.xhtml?raceid=23666

我过去曾尝试过 Selenium,并取得了不同程度的成功。我发现它很重,有时它不起作用,有时它挂起。如果可能的话,我宁愿避免它,只使用 urllib.request 并使用 headers/cookies 来查找我正在寻找的数据。

这些是障碍:

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>

谁能指出我正确的方向来浏览这个并刮掉每一页。

【问题讨论】:

标签: python web-scraping urllib


【解决方案1】:

我认为您可以使用 Selenium 轻松做到这一点。按钮的 id 遵循模式“mainForm:j_idt336:0:j_idt338”,递增。您可以通过 id 查找从 Selenium 中找到按钮,您可以单独处理“>”按钮以向前移动,也可以通过其 id。 id 似乎是以某种方式生成的,但您可以让您的 selenium 脚本将该格式作为参数,并创建另一个脚本来获取该 id 格式。 也可以看看mechanize

【讨论】:

  • 使用 Selinium,即使在我“单击”到下一页后,底层源代码也经常(不一致)返回到第一页。而且似乎没有任何组合等待/刷新/再次单击下一步可以让它“解开”并让它继续前进。
  • 在我看来问题出现是因为当您获取新内容时页面尚未加载。尝试从这里应用一些提示:stackoverflow.com/questions/10720325/….
猜你喜欢
  • 1970-01-01
  • 2018-12-13
  • 2021-06-23
  • 2020-04-27
  • 2019-12-28
  • 2014-01-10
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多