日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

自我分析colly的robots源码

發布時間:2024/4/18 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自我分析colly的robots源码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

colly是golang語言的爬蟲框架,我看了下網上沒有一個人去講解相關的內容,所以自己去研究了下源碼。
首先,是在colly.NewCollector()完畢后拿到了colly對象,可以通過將c.IgnoreRobotsTxt=false將robots協議開啟,隨后打斷點進入調試可以看見colly框架到底是如何解析不同形式的robots協議的,因為robots協議是一個非強制性的協議,所以大家雖然遵循但是寫法上都會略有不同,所以在解析robots文件上不是一個簡單的split就能做到的,看了下源碼,是需要逐個字節去解析的。
當然debug的入口是在Visit方法中,進入:

再到scrape(當然我們是使用的get方法去發送請求)的這個方法中:


核心就在這個checkRobots方法里了:


創造robot對象時用到了鎖機制(讀寫鎖,讀可以但是寫不可以),
核心解析方法:



這里就能看出來是一個字節一個字節來解析的。
最最重要的邏輯:

在這里用了break的方法來進行匹配是哪些關鍵字段

最后返回的就是各個agent分組以及分組下的哪些路徑不能爬取,從而判斷到底能否進行網頁爬取。

總結

以上是生活随笔為你收集整理的自我分析colly的robots源码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。