【问题标题】:How to get all the results from a web page just as the browser shows when finished scrolling down如何从网页中获取所有结果,就像浏览器在完成向下滚动时显示的那样
【发布时间】:2019-09-18 15:50:45
【问题描述】:

我正在尝试从网页中获取所有视频结果:

$ curl -qs https://ok.ru/video/c335170 | pup '.video-card_lk attr{href}' | wc -l
24

另一个方法返回相同的结果:

$ wget --config="/dev/null" -qO- https://ok.ru/video/c335170 | grep -oP '/video/\d+' | sort -u | wc -l
24

编辑 1:使用 Firefox 将网页滚动到末尾并将其保存为 c335170.html,我得到相同的结果:

$ cat c335170.html | grep -oP '/video/\d+' | sort -u | wc -l
24

但是,在网络浏览器上,滚动到末尾后,它会显示 81 个结果。

相同的铅。使用 YouTube 和隐藏来自 http 控制台客户端的结果的“加载更多”按钮:

$ curl -qs https://www.youtube.com/user/impacttvouaga/videos | grep -oP "/watch\?v=[\w-]+" | uniq | wc -l
21

编辑 2:我刚刚使用 Firefox 将此网页作为“网页,仅限 HTML”保存到 RMC_IMPACTV__YouTube.html,然后:

$ cat RMC_IMPACTV__YouTube.html | grep -oP "/watch\?v=[\w-]+" | uniq | wc -l
21

我怎样才能让远程 HTTP 服务器给我所有的结果?

【问题讨论】:

  • @peak Wouah,这比我想象的要复杂得多。这是否意味着我必须编写一个https://ok.ru 特定的 PHP 脚本来检索我想要的内容?
  • 我会尝试找出 ok.ru 是否没有 API,这样您就可以避免模拟“滚动”触发器的所有复杂性。 (模拟不必在 PHP 中完成...)
  • @peak 首先,我想尝试一些更简单的方法,并将 https://ok.ru/video/c335170 与 Firefox 一起保存为 Web Page, HTML onlyc335170.html 但不知何故,firefox 不会保存所有结果它显示在这个文件中。知道为什么吗?
  • 我可以使用 Chrome 的“开发者工具”界面下载扩展的 HTML,但它涉及几个步骤...

标签: http curl wget pup


【解决方案1】:

要下载扩展的 html,我安装了 Save Page WE 并向下滚动,我安装了 Scroll it!

【讨论】:

    猜你喜欢
    • 2012-08-12
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多