成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Tomcat和搜索引擎網(wǎng)絡(luò)爬蟲的攻防

cheukyin / 3166人閱讀

摘要:而搜索引擎如百度和微軟搜索,搜索等通過(guò)什么方式才能收錄我們的個(gè)人網(wǎng)站呢答案是搜索引擎的網(wǎng)絡(luò)爬蟲。網(wǎng)絡(luò)爬蟲是一個(gè)很形象的名詞,是屬于搜索引擎的工具,只有被這些網(wǎng)絡(luò)爬蟲爬過(guò)的內(nèi)容才有機(jī)會(huì)出現(xiàn)在對(duì)應(yīng)搜索引擎的搜索結(jié)果中。

不知道廣大程序員朋友們注意到一個(gè)現(xiàn)象么?使用百度是無(wú)法搜索到淘寶網(wǎng)的網(wǎng)頁(yè)。為什么會(huì)造成這種現(xiàn)象?這就要從網(wǎng)絡(luò)爬蟲說(shuō)起了。

咱們程序員假如自己搭設(shè)個(gè)人網(wǎng)站,在上面分享少量自己的技術(shù)文章,面臨的一個(gè)重要問(wèn)題就是讓搜索引擎能夠搜索到自己的個(gè)人網(wǎng)站,這樣才能讓更多的讀者訪問(wèn)到。

而搜索引擎如百度和微軟Bing搜索,Google搜索等通過(guò)什么方式才能收錄我們的個(gè)人網(wǎng)站呢?

答案是搜索引擎的網(wǎng)絡(luò)爬蟲。 網(wǎng)絡(luò)爬蟲是一個(gè)很形象的名詞,是屬于搜索引擎的工具,只有被這些網(wǎng)絡(luò)爬蟲“爬過(guò)”的內(nèi)容才有機(jī)會(huì)出現(xiàn)在對(duì)應(yīng)搜索引擎的搜索結(jié)果中。

個(gè)人站長(zhǎng)對(duì)網(wǎng)絡(luò)爬蟲是又愛又恨。一方面,網(wǎng)絡(luò)爬蟲可以讓我們的個(gè)人網(wǎng)站出現(xiàn)在搜索結(jié)果里,對(duì)我們的個(gè)人網(wǎng)站進(jìn)行擴(kuò)散。另一方面,假如網(wǎng)絡(luò)爬蟲太多太頻繁地訪問(wèn)個(gè)人網(wǎng)站,會(huì)肯定程度上影響正常使用戶的請(qǐng)求解決。

于是就有了文章開頭我提到的百度搜不到淘寶產(chǎn)品信息的文章。

在瀏覽器里輸入https://www.taobao.com/robots...,

能看到淘寶網(wǎng)的一個(gè)文件robots.txt:

隨意選一段解釋:這個(gè)robots.txt的意思是,淘寶網(wǎng)做出了規(guī)定,假如網(wǎng)絡(luò)請(qǐng)求來(lái)自百度爬蟲(Baiduspider), 那么只允許(allow)百度爬蟲讀取article, oshtml和/ershou, 不允許讀取的是product。

User-agent: Baiduspider

Allow: /article

Allow: /oshtml

Allow: /ershou

Disallow: /product/

Disallow: /

那么淘寶網(wǎng)怎樣知道一個(gè)請(qǐng)求是來(lái)自百度爬蟲,還是來(lái)自真正的使用戶訪問(wèn)呢?答案就是HTTP請(qǐng)求的User-agent字段。

下圖是我使用Chrome訪問(wèn)淘寶網(wǎng)的HTTP請(qǐng)求的User-agent:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36

再回到Tomcat。假如有大量來(lái)自網(wǎng)絡(luò)爬蟲的讀取請(qǐng)求,Web服務(wù)器需要為每一個(gè)請(qǐng)求創(chuàng)立一個(gè)session。當(dāng)Session數(shù)量變得巨大時(shí),消耗的服務(wù)器內(nèi)存和資源也是巨大的。

因而,Tomcat對(duì)于來(lái)自網(wǎng)絡(luò)爬蟲的請(qǐng)求,用同一個(gè)session來(lái)解決。

我們打開Tomcat的源代碼來(lái)學(xué)習(xí)。

Tomcat的源代碼可以到其官網(wǎng)去下載:

https://tomcat.apache.org/dow...

點(diǎn)這個(gè)鏈接:

我下載的是7.0.90版本,只有7MB大。

這里需要注意,即便Spider顯式的傳了一個(gè) sessionId過(guò)來(lái),也會(huì)棄使用,而是根據(jù)client Ip 來(lái)進(jìn)行判斷,即對(duì)于 相同的 Spider 只提供一個(gè)Session。

在下載好的源代碼文件夾里,找到這個(gè)子文件夾:apache-tomcat-7.0.90-srcjavaorgapachecatalinavalves

打開CrawlerSessionManagerValve.java:

可以看到從第192行代碼開始都是Tomcat使用來(lái)檢測(cè)進(jìn)來(lái)的網(wǎng)絡(luò)請(qǐng)求能否是網(wǎng)絡(luò)爬蟲:

通過(guò)這個(gè)類里定義的正則表達(dá)式檢測(cè)HTTP請(qǐng)求的user-agent字段來(lái)判斷究竟該請(qǐng)求能否來(lái)自網(wǎng)絡(luò)爬蟲:

".[bB]ot.|.Yahoo! Slurp.|.Feedfetcher-Google."

一旦正則表達(dá)式在第205行匹配成功,將第206行的標(biāo)志位設(shè)成true。

假如檢測(cè)到是網(wǎng)絡(luò)爬蟲,則使用clientIdSessionId.get這個(gè)API獲取Tomcat專門為網(wǎng)絡(luò)爬蟲預(yù)留的sessionId, 而后在第226行把該sessionId分配到進(jìn)來(lái)的網(wǎng)絡(luò)爬蟲請(qǐng)求,這樣就避免了白費(fèi)太多的資源申請(qǐng)session來(lái)服務(wù)海量的網(wǎng)絡(luò)爬蟲請(qǐng)求,節(jié)省了Web服務(wù)器的資源。

要獲取更多Jerry的原創(chuàng)技術(shù)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙"或者掃描下面二維碼:

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/11414.html

相關(guān)文章

  • 極簡(jiǎn)爬蟲攻防戰(zhàn)紀(jì)要

    摘要:極簡(jiǎn)爬蟲攻防戰(zhàn)紀(jì)要爬蟲是構(gòu)建搜索引擎的基礎(chǔ)負(fù)責(zé)抓取網(wǎng)頁(yè)信息并對(duì)網(wǎng)頁(yè)識(shí)別分類及過(guò)濾。爬蟲方終于鎖定了第一場(chǎng)戰(zhàn)役的勝局由于斷崖式技術(shù)的出現(xiàn),反爬方在瀏覽器識(shí)別戰(zhàn)役上望風(fēng)披靡。經(jīng)過(guò)反爬方的精心運(yùn)作,逐漸有效削弱了敵方的攻勢(shì)。 極簡(jiǎn)爬蟲攻防戰(zhàn)紀(jì)要 ? ??爬蟲是構(gòu)建搜索引擎的基礎(chǔ), 負(fù)責(zé)抓取網(wǎng)頁(yè)信息并對(duì)網(wǎng)頁(yè)識(shí)別、分類及過(guò)濾。我們熟識(shí)的電商、搜索、新聞及各大門戶網(wǎng)站都有強(qiáng)大的爬蟲集群在每...

    elliott_hu 評(píng)論0 收藏0
  • 爬蟲攻防實(shí)踐

    摘要:之前在學(xué)校曾經(jīng)用過(guò)的方法做過(guò)一些爬蟲腳本來(lái)玩,從正式轉(zhuǎn)前端之后,出于興趣,我對(duì)爬蟲和反爬蟲又做了一些了解,并且做了一些爬蟲攻防的實(shí)踐。爬蟲腳本通常會(huì)很頻繁的進(jìn)行網(wǎng)絡(luò)請(qǐng)求,比如要爬取豆瓣排行榜的電影,就會(huì)連續(xù)發(fā)送個(gè)網(wǎng)絡(luò)請(qǐng)求。 之前在學(xué)校曾經(jīng)用過(guò)request+xpath的方法做過(guò)一些爬蟲腳本來(lái)玩,從ios正式轉(zhuǎn)前端之后,出于興趣,我對(duì)爬蟲和反爬蟲又做了一些了解,并且做了一些爬蟲攻防的實(shí)踐...

    wanglu1209 評(píng)論0 收藏0
  • 爬蟲攻防實(shí)踐

    摘要:之前在學(xué)校曾經(jīng)用過(guò)的方法做過(guò)一些爬蟲腳本來(lái)玩,從正式轉(zhuǎn)前端之后,出于興趣,我對(duì)爬蟲和反爬蟲又做了一些了解,并且做了一些爬蟲攻防的實(shí)踐。爬蟲腳本通常會(huì)很頻繁的進(jìn)行網(wǎng)絡(luò)請(qǐng)求,比如要爬取豆瓣排行榜的電影,就會(huì)連續(xù)發(fā)送個(gè)網(wǎng)絡(luò)請(qǐng)求。 之前在學(xué)校曾經(jīng)用過(guò)request+xpath的方法做過(guò)一些爬蟲腳本來(lái)玩,從ios正式轉(zhuǎn)前端之后,出于興趣,我對(duì)爬蟲和反爬蟲又做了一些了解,并且做了一些爬蟲攻防的實(shí)踐...

    xiangzhihong 評(píng)論0 收藏0
  • 如果有人問(wèn)你爬蟲抓取技術(shù)門道,請(qǐng)叫他來(lái)看這篇文章

    摘要:未授權(quán)的爬蟲抓取程序是危害原創(chuàng)內(nèi)容生態(tài)的一大元兇,因此要保護(hù)網(wǎng)站的內(nèi)容,首先就要考慮如何反爬蟲。反爬蟲的銀彈目前的反抓取機(jī)器人檢查手段,最可靠的還是驗(yàn)證碼技術(shù)。機(jī)器人協(xié)議除此之外,在爬蟲抓取技術(shù)領(lǐng)域還有一個(gè)白道的手段,叫做協(xié)議。 本文首發(fā)于我的個(gè)人博客,同步發(fā)布于SegmentFault專欄,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處,商業(yè)轉(zhuǎn)載請(qǐng)閱讀原文鏈接里的法律聲明。 web是一個(gè)開放的平臺(tái),這也奠定了...

    raoyi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<