抓取和抓取随机网站



我想建立一个网络爬虫,它在互联网上随机移动,并将损坏的(http statuscode 4xx(图像链接放入数据库中。

到目前为止,我成功地使用节点包requestcheerio构建了一个抓取器。我知道限制是动态创建内容的网站,所以我正在考虑切换到puppeteer。尽可能快地做到这一点会很好,但这不是必需的,因为服务器应该无限期地运行。

我最大的问题:我从哪里开始爬行?

我希望爬虫以递归方式找到随机网页,这些网页可能有内容并且可能有断开的链接。有人可以帮助找到解决这个问题的明智方法吗?

域列表

通常,以下服务提供域名列表:

  • Alexa Top 100万:top-1m.csv.zip(免费(
    CSV文件,包含100万行,根据Alexas算法访问量最大的网站
  • 威瑞信
  • :顶级域区域文件信息(免费 IIRC(您可以直接通过链接页面询问威瑞信
    ,为您提供他们的.com.net域列表。您必须填写表格才能请求数据。如果我没记错的话,该列表是出于研究目的免费提供的(也可能是出于其他原因(,但可能需要几周时间才能获得批准。
  • whoisxmlapi.com:所有注册域名(需要付费(
    该公司出售包含有关域名,注册商,IP等信息的所有类型的列表。
  • premiumdrops.com:域区域列表(需要付款(
    与上一个类似,您可以获取不同域TLD的列表。

爬行方法

一般来说,我认为网站越旧,它就越有可能包含损坏的图像(但这本身已经是一个大胆的假设(。因此,如果您使用的列表包含域注册日期,则可以先尝试抓取较旧的网站。此外,您可以通过使用木偶师的多个实例来加快爬网过程。

为了让您大致了解抓取速度:假设您的服务器每秒可以抓取 5 个网站(假设每页 2-4 秒,这需要 10-20 个并行浏览器实例(,您需要大约两天的时间才能获得 100 万页 (1,000,000 / 5 / 60 / 60 / 24 = 2.3(。

我不知道这是否是你要找的,但是每当单击"新建随机网站"按钮时,这个网站都会呈现一个新的随机网站,如果你可以用木偶师刮它可能会很有用。

我最近自己遇到了这个问题,并能够在这篇文章的帮助下解决它。为了澄清其他人之前所说的话,您可以从各种来源获取网站列表。Thomas Dondorf 关于使用威瑞信 TLD 区域文件信息的建议目前已经过时,正如我在尝试联系他们时了解到的那样。相反,您应该查看ICANN的CZDNS。本网站允许您访问任何名称的TLD文件信息(通过请求(,而不仅仅是.com和.net,从而允许您抓取更多网站。在爬行方面,正如你所说,木偶师将是一个不错的选择。

最新更新