這些年職業爬蟲師教會我的技巧

2021-09-22 04:44:02 字數 1433 閱讀 7869

隨著 python 越來越火爆爬蟲這個行業也逐漸被人所重視起來,但市面上教的一些爬蟲的技巧大多是一些基礎類的知識,然而在實際的爬蟲工作中你會遇到各種各樣的問題。比如抓取到的網頁字型顯示亂碼、某個**使用了滑塊驗證碼、某個**使用了簡訊驗證

如何高效的解析資料、各個解析庫又有什麼區別、如何把資料插入到各個資料庫中等等。

所以我想把我在實際爬蟲工作中會使用到的技巧,都分享給大家。讓一些日後想走上爬蟲這條職業道路的人,學習到真正實用的知識。這些技巧都是我實際工作中會一直使用,有些是從爬蟲老師傅那學到的,有些是自己磕磕碰碰總結出來的經驗。這個系列我會一直更新下去,也是總結自己的一些爬蟲經驗。話不多說,今天就先教大家乙個非常實用的爬蟲技巧。

隨機構造請求頭

反爬是爬蟲非常重要的內容之一,爬蟲有很大精力是在跟反爬做鬥爭,而最常見的反爬手段就是構造乙個瀏覽器的請求資訊。但大多數人寫乙個帶有請求頭的爬蟲會是這樣寫。

首先去網上找下或者複製瀏覽器中的請求頭資訊,然後複製到自己程式裡,在構造乙個 headers 字典,最後加到請求體中。這樣寫法非常的耗時費力,甚至每次寫程式你還要去瀏覽器上覆制下請求頭資訊。

而且這樣寫最大的缺點是每個請求都帶的是同個請求頭,而對於一些反爬措施比較強的**來說就有可能檢測到你的爬蟲程式,直接把你的 ip 給封鎖。

在實際的工作中我每次發起的請求都會用不同的請求頭,並且是隨機的選取乙個請求頭。而且用法非常的簡單,你只需要兩行**就可以完成。

這裡就要給大家介紹乙個簡單實用的庫「fake-useragent」,它可以偽裝生成 headers 請求頭中的 user agent 值。使用方法也很簡單,大家看下**就懂的了。

from fake_useragent import useragent

for i in range(10):

ua = useragent()

headers = 

print(headers)

首先你需要先安裝下 fake_useragent 庫,然後在匯入 useragent 類,使用它的 random 函式,每次執行後就會隨機給你返回乙個請求頭,隨機性非常的強,而且都不帶重複。

甚至你可以制定生產某種瀏覽器的請求頭

from fake_useragent import useragent

ua = useragent()

# ie user agent

print(ua.ie)

# opera user agent

print(ua.opera)

# chrome user agent

print(ua.chrome)

# firefox user agent

print(ua.firefox)

# safri user agent

print(ua.safari)

玩Linux這些年積累的技巧

1.bash中的 相關引數 shell 0 表示當前檔名 以空格分離所有引數,形成乙個字串 以空格分離所有引數,形成乙個字串組合。與 的不同表現在被 引用時,是乙個字串,而 則包含多個字串 傳遞給程序的引數數目 上一條命令的執行結果,沒有錯誤時為0 本條命令的pid 2.bash技巧,由變數的內容來...

玩Linux這些年積累的技巧

1.bash中的 相關引數 shell 0 表示當前檔名 以空格分離所有引數,形成乙個字串 以空格分離所有引數,形成乙個字串組合。與 的不同表現在被 引用時,是乙個字串,而 則包含多個字串 傳遞給程序的引數數目 上一條命令的執行結果,沒有錯誤時為0 本條命令的pid 2.bash技巧,由變數的內容來...

我做專案這些年的經驗

1 中國充滿大量非常敬業但不夠職業的專案經理,不了解這一點,就做不好中國的專案。2 真正的原因往往都隱藏在表面的理由背後。3 做專案最高境界是和使用者形成長期共生雙贏關係。4 賣功能,賣利益,賣服務,賣價值,賣口碑,這是做專案的五個境界。5 大專案往往是從小專案建立信任開始的。6 做專案的公司夢想往...