Web crawler 检测';隐形';网络爬虫
有哪些选项可以检测不希望被检测到的网络爬虫 (我知道列表检测技术将允许智能隐形爬虫程序员制作出更好的蜘蛛,但我认为我们无论如何都无法阻止智能隐形爬虫,只能阻止犯错误的爬虫。) 我不是说像谷歌机器人和雅虎这样的好爬虫!发出啧啧的声音 我认为一个机器人很好,如果它:Web crawler 检测';隐形';网络爬虫,web-crawler,Web Crawler,有哪些选项可以检测不希望被检测到的网络爬虫 (我知道列表检测技术将允许智能隐形爬虫程序员制作出更好的蜘蛛,但我认为我们无论如何都无法阻止智能隐形爬虫,只能阻止犯错误的爬虫。) 我不是说像谷歌机器人和雅虎这样的好爬虫!发出啧啧的声音 我认为一个机器人很好,如果它: 在用户代理字符串中将自身标识为bot 阅读robots.txt(并遵守它) 我说的是坏爬虫,躲在普通用户代理后面,使用我的带宽,从不给我任何回报 在更新列表中可以构造一些活板门(感谢Chris,gs): 添加robots.txt中仅列出
- 链接或父容器上的style=“display:none;”
- 放置在另一个z索引较高的元素下面
robots.txt
李>
robots.txt
请考虑盲人使用屏幕阅读器:给人们一种联系方式,或者解决(非图像)CAPTCHA继续浏览。 有什么方法可以自动检测试图将自己伪装成正常人类访问者的网络爬虫。 更新
问题不是:我如何抓住每一个爬虫。问题是:如何最大限度地提高发现爬虫的机会 有些爬行器非常好,能够解析和理解html、xhtml、css javascript、VB脚本等。
我没有幻想:我无法打败他们 然而,你会惊讶于有些爬虫是多么愚蠢。在我看来,最愚蠢的例子是:在请求URL之前,将所有URL都转换成小写
还有一大堆爬虫“不够好”,无法避开各种活板门。有一件事你没有列出,它们通常用来检测坏的爬虫 点击速度快,好的网络爬虫会打破他们的点击率,这样他们就不会让网站上充斥着大量的请求。坏的会做三件事之一:
完成这一想法后,可能会显示隐藏元素的未调用javascript可能会愚弄javascript解析机器人的一个子集。而且,实现起来也不需要很多工作。一个简单的解决方案是创建一个链接并使其不可见
<a href="iamabot.script" style="display:none;">Don't click me!</a>
当然,您应该期望一些查看源代码的人遵循该链接,只是为了了解它的方向。但是你可以给那些用户一个验证码
当然,有效的爬虫程序也会跟随链接。但是您不应该实现rel=nofollow,而是应该查找有效爬虫的标志。(就像用户代理一样)实际上,要跟上好的用户代理字符串并不容易。浏览器版本来来往往。通过不同的行为统计用户代理字符串可以揭示有趣的事情 我不知道这可以自动化到什么程度,但至少这是一件与众不同的事情。请看-他们正在大规模设置机器人陷阱(并在IP上安装了DNSRBL) 使用复杂的URL和HTML:
<a href="//example.com/"> = http://example.com/ on http pages.
<a href="page&#hash"> = page& + #hash
=http://example.com/ 在http页面上。
=第&+#页散列
在HTML中,您可以对注释、CDATA元素、实体等使用大量技巧:
<a href="foo<!--bar-->"> (comment should not be removed)
<script>var haha = '<a href="bot">'</script>
<script>// <!-- </script> <!--><a href="bot"> <!-->
不久前,我与一家小型托管公司合作,帮助他们实现解决方案。我开发的系统检查了来自任何给定IP地址的web服务器日志中的过度活动,并发布了防火墙规则来阻止违规者。它包括基于的IP地址/范围的白名单,然后根据需要通过检查声明的用户代理字符串自动更新,如果客户端
ADSARobot|ah-ha|almaden|aktuelles|Anarchie|amzn_assoc|ASPSeek|ASSORT|ATHENS|Atomz|attach|attache|autoemailspider|BackWeb|Bandit|BatchFTP|bdfetch|big.brother|BlackWidow|bmclient|Boston\ Project|BravoBrian\ SpiderEngine\ MarcoPolo|Bot\ mailto:craftbot@yahoo.com|Buddy|Bullseye|bumblebee|capture|CherryPicker|ChinaClaw|CICC|clipping|Collector|Copier|Crescent|Crescent\ Internet\ ToolPak|Custo|cyberalert|DA$|Deweb|diagem|Digger|Digimarc|DIIbot|DISCo|DISCo\ Pump|DISCoFinder|Download\ Demon|Download\ Wonder|Downloader|Drip|DSurf15a|DTS.Agent|EasyDL|eCatch|ecollector|efp@gmx\.net|Email\ Extractor|EirGrabber|email|EmailCollector|EmailSiphon|EmailWolf|Express\ WebPictures|ExtractorPro|EyeNetIE|FavOrg|fastlwspider|Favorites\ Sweeper|Fetch|FEZhead|FileHound|FlashGet\ WebWasher|FlickBot|fluffy|FrontPage|GalaxyBot|Generic|Getleft|GetRight|GetSmart|GetWeb!|GetWebPage|gigabaz|Girafabot|Go\!Zilla|Go!Zilla|Go-Ahead-Got-It|GornKer|gotit|Grabber|GrabNet|Grafula|Green\ Research|grub-client|Harvest|hhjhj@yahoo|hloader|HMView|HomePageSearch|http\ generic|HTTrack|httpdown|httrack|ia_archiver|IBM_Planetwide|Image\ Stripper|Image\ Sucker|imagefetch|IncyWincy|Indy*Library|Indy\ Library|informant|Ingelin|InterGET|Internet\ Ninja|InternetLinkagent|Internet\ Ninja|InternetSeer\.com|Iria|Irvine|JBH*agent|JetCar|JOC|JOC\ Web\ Spider|JustView|KWebGet|Lachesis|larbin|LeechFTP|LexiBot|lftp|libwww|likse|Link|Link*Sleuth|LINKS\ ARoMATIZED|LinkWalker|LWP|lwp-trivial|Mag-Net|Magnet|Mac\ Finder|Mag-Net|Mass\ Downloader|MCspider|Memo|Microsoft.URL|MIDown\ tool|Mirror|Missigua\ Locator|Mister\ PiX|MMMtoCrawl\/UrlDispatcherLLL|^Mozilla$|Mozilla.*Indy|Mozilla.*NEWT|Mozilla*MSIECrawler|MS\ FrontPage*|MSFrontPage|MSIECrawler|MSProxy|multithreaddb|nationaldirectory|Navroad|NearSite|NetAnts|NetCarta|NetMechanic|netprospector|NetResearchServer|NetSpider|Net\ Vampire|NetZIP|NetZip\ Downloader|NetZippy|NEWT|NICErsPRO|Ninja|NPBot|Octopus|Offline\ Explorer|Offline\ Navigator|OpaL|Openfind|OpenTextSiteCrawler|OrangeBot|PageGrabber|Papa\ Foto|PackRat|pavuk|pcBrowser|PersonaPilot|Ping|PingALink|Pockey|Proxy|psbot|PSurf|puf|Pump|PushSite|QRVA|RealDownload|Reaper|Recorder|ReGet|replacer|RepoMonkey|Robozilla|Rover|RPT-HTTPClient|Rsync|Scooter|SearchExpress|searchhippo|searchterms\.it|Second\ Street\ Research|Seeker|Shai|Siphon|sitecheck|sitecheck.internetseer.com|SiteSnagger|SlySearch|SmartDownload|snagger|Snake|SpaceBison|Spegla|SpiderBot|sproose|SqWorm|Stripper|Sucker|SuperBot|SuperHTTP|Surfbot|SurfWalker|Szukacz|tAkeOut|tarspider|Teleport\ Pro|Templeton|TrueRobot|TV33_Mercator|UIowaCrawler|UtilMind|URLSpiderPro|URL_Spider_Pro|Vacuum|vagabondo|vayala|visibilitygap|VoidEYE|vspider|Web\ Downloader|w3mir|Web\ Data\ Extractor|Web\ Image\ Collector|Web\ Sucker|Wweb|WebAuto|WebBandit|web\.by\.mail|Webclipping|webcollage|webcollector|WebCopier|webcraft@bea|webdevil|webdownloader|Webdup|WebEMailExtrac|WebFetch|WebGo\ IS|WebHook|Webinator|WebLeacher|WEBMASTERS|WebMiner|WebMirror|webmole|WebReaper|WebSauger|Website|Website\ eXtractor|Website\ Quester|WebSnake|Webster|WebStripper|websucker|webvac|webwalk|webweasel|WebWhacker|WebZIP|Wget|Whacker|whizbang|WhosTalking|Widow|WISEbot|WWWOFFLE|x-Tractor|^Xaldon\ WebSpider|WUMPUS|Xenu|XGET|Zeus.*Webster|Zeus [NC]
* style="display: none;" on link or parent container
* placed underneath another element with higher z-index