当网络爬行时如何找到低质量网址的模式并抓取这些类型的网址?

时间:2017-01-24 16:20:04

标签: url web-crawler

exmpl.com/search.php?q=hey这样的网址包含各种各样的GET参数,我想对这些链接进行分类,以防止我的抓取工具抓取这样的"低优先级"网址。

1 个答案:

答案 0 :(得分:0)

这取决于您要抓取的内容以及您想要使用它做什么,如果它是一些特定的网站或广泛的抓取。有时,网站的所有者不希望您抓取这些网址,因为它们会产生额外的流量(对两者都无用的流量),并且他们也可能会使用robots.txt文件。看看吧(无论如何你应该尊重它)。

这些低质量的网址,如您所说,也可能发生在:

  • 电子商店,您不断向购物车添加商品,后台办公室搞乱了订单
  • 博客平台,您点击评论,回复,喜欢等等,结果很奇怪
  • 来自日历或其他无限网址的抓取工具陷阱,其中只有参数更改但页面相同
  • 链接服务器场,尤其是分类广告网站,其中每个产品或地区都是作为子域生成的,并且您最终会为同一个网站提供数千个子域名;即使您在每个网站上下载的网址数量有限,这个数量级也只会占用您的抓取次数

如果您在用户代理上有联系人,他们有时会与您联系以停止抓取特定类型的网址,或者与您一起调整应该抓取的内容以及如何(例如,每秒的请求数)

因此,这取决于您尝试抓取的内容。看看前沿并试图找到奇怪的行为:

  • 同一网站的数百个网址,其中网址大致相同,只有一个或几个参数发生变化
  • 博客平台或电子商店的数百个网址,其参数看起来很奇怪或不断重复(查看这些平台并尝试在其中找到模式,如(.*\?widgetType=.*)(.*\&action=buy_now.*)
  • 看起来像是来自日历的网址
  • 数百个与您不感兴趣的表单互动的网址(例如您提到的搜索)
  • 网站的大量网址太高,无法满足您对该网站或该类型网站的期望
  • 网站的多个子域名太高
  • 拥有大量403,404或500或非200代码的网站以及由此负责的网站
  • 一个不会停止增长的边界,以及哪些网站和网址对此负责(哪些网址被添加得太多以至于让它变得怪异)

所有这些网址都是从抓取中排除的好选择。识别公共部分并将其用作排除规则中的正则表达式。