列出网站中报告链接的页面

问题描述 投票:0回答:1

我正在尝试列出网站上某个级别的所有页面。该网站主要是报告事件的文本链接,每个链接都链接到更详细的报告。 因此,最新报告的主要链接是 https://avherald.com/,然后如果您单击“下一步”,则会转到报告链接的上一页。 我想做的是获取每个“页面”的网址列表(其中页面是指向详细报告的文本链接列表 - 我实际上并不想要详细报告)。

我试过这个

curl -s https://avherald.com/ |
  grep -o "<a href=[^>]*>" |
  sed -r 's/<a href="([^"]*)".*>/\1/' |
  sort -u

但它只在第一页列出链接 我尝试过 google 搜索 site:avherald.com inurl::h?list=& 但它无法挑选出我感兴趣的特定页面。 所需的输出就像 https://avherald.com/h?list=&opt=0&offset=20240227190020%2B5157b896
https://avherald.com/h?list=&opt=0&offset=20240215170836%2B514fcc2a
等等,直到该类型的所有页面都在列表中。

我也看过这个答案,但我一直坚持寻找 Inspector 来查找 json。 Web 抓取包含 R 中的项目列表的页面
任何帮助将不胜感激。

curl url wget google-search
1个回答
0
投票
grep -o "<a href=[^>]*>"

首先要注意,您正在使用 HTML 文件而不仅仅是纯文本文件,因此更可靠的方法是使用 HTML parser,例如

hxselect
比通用文本处理器。

实际上并不想要详细的报告

您正在尝试创建 spider,GNU

wget
具有
--spider
功能,但请注意,根据
wget
手册页

此功能需要 Wget 做更多工作才能接近 真正的网络蜘蛛的功能。

探查后 https://avherald.com/ 偏移值似乎是时间戳,并且所述站点显示不晚于给定时间戳的一定数量的事件,例如 https://avherald.com/h?list=&opt= 0&offset=20240101120000 确实显示不晚于 2024 年 1 月 1 日中午(12 小时 00 分 00 秒)的事件。知道您应该能够度过接下来的日子,但请记住,可能会有重叠(您将获得链接对于不同日期的同一事件),因此如果出现问题,您将需要删除重复项。

© www.soinside.com 2019 - 2024. All rights reserved.