搜寻和抓取随机网站

时间:2019-09-28 12:54:02

标签: request web-crawler puppeteer

我想构建一个网络爬虫,该爬虫可在互联网上随机访问,并将损坏的(http状态码4xx)图像链接放入数据库中。

到目前为止,我已经成功使用节点包requestcheerio构建了一个scraper。我了解限制是网站可以动态创建内容,因此我正在考虑切换到puppeteer。尽可能快地进行此操作会很好,但是由于服务器应无限期运行,因此没有必要。

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

我希望搜寻器以递归方式找到随机网页,这些网页可能具有内容并且链接可能已损坏。有人可以帮助找到解决此问题的明智方法吗?

3 个答案:

答案 0 :(得分:1)

域列表

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

  • Alexa前100万名top-1m.csv.zip(免费)
    根据Alexas算法,most visited websites包含一百万行的CSV文件
  • Verisign Top-Level Domain Zone File Information(免费的IIRC)
    您可以直接通过链接页面询问Verisign,以向您提供其.com.net域的列表。您必须填写表格以请求数据。如果我没记错的话,出于研究目的(可能也是出于其他原因),该列表是免费提供的,但是可能要过几周才能获得批准。
  • whoisxmlapi.com All Registered Domains(需要付款)
    该公司出售所有类型的列表,其中包含有关域名,注册商,IP等的信息。
  • premiumdrops.com Domain Zone lists(需要付款)
    与上一个类似,您可以获取不同域TLD的列表。

爬行方法

通常,我认为网站越老,它包含破碎图像的可能性就越大(但这本身已经是一个大胆的假设)。因此,如果您使用包含域注册日期的列表,则可以尝试首先爬网较旧的网站。此外,您可以使用multiple instances of puppeteer来加快抓取过程。

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

答案 1 :(得分:0)

我不知道这是否是您要的内容,但是只要您单击新建随机网站按钮,此website就会呈现一个新的随机网站,如果你可以用木偶戏擦它。

答案 2 :(得分:0)

最近我本人也有这个问题,并且可以在本文的帮助下解决。为了弄清楚其他人之前所说的内容,您可以从各种来源获得网站列表。正如我在尝试联系Verisign的TLD区域文件信息时所说的那样,Thomas Dondorf的建议目前已过时。相反,您应该查看ICANN's CZDNS。该网站允许您(按请求)访问TLD文件信息的任何名称,而不仅仅是.com和.net,从而使您可以潜在地抓取更多网站。如您所说,就爬网而言,Puppeteer是一个不错的选择。

相关问题