方法一:利用**協議和sitemap去分析**結構
robots 協議
也稱為爬蟲協議、機械人協議,全稱是「網路爬蟲排除標準」
該協議檔案放置在**根目錄下,在訪問**的時候要檢視的第乙個檔案就是robots.txt協議檔案,**通過robots.txt協議檔案告訴搜尋引擎哪些頁面可以抓取,哪些頁面不能抓取,但是並不是每個**必須有
馬蜂窩robots協議
sitemap
告訴搜尋引擎**的架構,每個**有自己的sitemap結構。它是乙個xml檔案,定義了各種型別文章的聚合頁面。點開任意乙個sitemap,得到的是另乙個頁面,它是一些具體的文章。內容需要長期沉澱的**非常適合做sitemap,對於實時更新的網頁比如微博,就不會進行設計sitemap。
以馬蜂窩的頁面**為例:
10010 表示某乙個板塊(某乙個城市),再點開分頁。
i後面就是一篇一篇文章
馬蜂窩sitemap
import re
with open('mfw.html', 'r') as f:
c = f.read()
#pattern = re.compile(r'/i/\d.html') #將正規表示式編譯成pattern物件
print(pattern.findall(c))#利用pattern的方法findall對文字進行匹配查詢
反反爬蟲策略
點選我前往github檢視源 別忘記star 自建 池 一.對請求ip等進行限制的。以知乎為例,當我們的請求速度到達一定的閾值,會觸發反爬蟲機制!在我爬取知乎百萬使用者資訊中,出現了429錯誤 too many requests 詳情請見我的部落格 應對策略.1.降低爬蟲採集速率,使速率略低於閾值 ...
python爬蟲去重策略 爬蟲去重策略
1 使用scrapy自帶的set集合去重,當程式結束的時候會被清空,缺點 再次執行會導致資料重複。2 使用mysql做去重,對url位址進行md5,base64加密,加密之後會得到一串字元,判斷字串 是否在mysql表中,如果在表示已經爬取過了,如果不在,表示沒有爬取,執行請求,將加密後的url 3...
python爬蟲去重策略 爬蟲去重策略
下面我會從程式 資料庫等幾個層面詳細敘述一下相應的去重策略。程式層面,像十萬以下url的抓取可以簡單的用set來實現去重。如果是百萬或者千萬量級的話,考慮到效能,我們應該使用基於hash的set實現去重。知道了前面雜湊的知識,你肯定就懂這是為什麼了。雜湊使得我們並不需要對比超長的url以及param...