【问题标题】:Collecting names from website while pressing button to load more names从网站收集名称,同时按下按钮加载更多名称
【发布时间】:2018-10-11 18:12:14
【问题描述】:

一位同事早些时候问过我这个问题,老实说,我不确定如何解决。

基本上,有一个网站有名字(https://www.change.org/p/outrageous-water-bills-let-cpuc-know-that-sjwc-s-unfair-billing-practices-need-to-stop/c?source_location=petition_show)。

我的同事正在寻找所有这些名字......到目前为止,我一直在手动进行。最大的问题是底部有一个“加载更多”按钮,必须一次又一次地按下才能加载更多名称。

所有名称都包含在 HTML 中,为 <strong class="link-unlined">Example Name</strong>,因此抓取应该不会太难,但我不确定它是不断按下按钮。

在不“烧毁”网页的情况下反复激活按钮的最佳方法是什么?我认为这里可能有超过 10000 个名称,并且一次只能加载 10 个。

按钮本身是<div class="js-load-more"><button type="button" class="btn btn-full btn-big"><span data-loading-text="Loading..." class="text">Load more </span></button></div>...但是,我似乎无法确定点击本身是如何被监控/跟踪的,所以我不确定是否有办法覆盖它?

【问题讨论】:

标签: javascript html button


【解决方案1】:

单击“加载更多”按钮后,它会调用此 API/URL 并检索接下来的 10 个 cmets。

https://www.change.org/api-proxy/-/comments?limit=10&offset=0&commentable_type=Event&commentable_id=8256626&parent_id=0&role=comment&before_datetime=2018-04-20T21%3A27%3A01Z

您可以调用相同的链接,修改参数以获取所有或下一组 cmets。

【讨论】:

  • 好吧...所以这似乎有 20 个限制...原来这只是重复两次的十个 cmets 的列表?我应该可以用这个写一个动态脚本(我正在尝试 rn,但这里可能有更简单的方法吗?)
  • 我认为没有比这更容易的了。不需要屏幕报废.. JSON 格式的数据就在您家门口 :)
  • 非常公平,我现在正在编写脚本,一旦完成就会接受这个作为答案:) 谢谢你的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-22
  • 1970-01-01
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多