隨著 python 越來越火爆爬蟲這個行業也逐漸被人所重視起來,但市面上教的一些爬蟲的技巧大多是一些基礎類的知識,然而在實際的爬蟲工作中你會遇到各種各樣的問題。比如抓取到的網頁字型顯示亂碼、某個**使用了滑塊驗證碼、某個**使用了簡訊驗證
如何高效的解析資料、各個解析庫又有什麼區別、如何把資料插入到各個資料庫中等等。
所以我想把我在實際爬蟲工作中會使用到的技巧,都分享給大家。讓一些日後想走上爬蟲這條職業道路的人,學習到真正實用的知識。這些技巧都是我實際工作中會一直使用,有些是從爬蟲老師傅那學到的,有些是自己磕磕碰碰總結出來的經驗。這個系列我會一直更新下去,也是總結自己的一些爬蟲經驗。話不多說,今天就先教大家乙個非常實用的爬蟲技巧。
隨機構造請求頭
反爬是爬蟲非常重要的內容之一,爬蟲有很大精力是在跟反爬做鬥爭,而最常見的反爬手段就是構造乙個瀏覽器的請求資訊。但大多數人寫乙個帶有請求頭的爬蟲會是這樣寫。
首先去網上找下或者複製瀏覽器中的請求頭資訊,然後複製到自己程式裡,在構造乙個 headers 字典,最後加到請求體中。這樣寫法非常的耗時費力,甚至每次寫程式你還要去瀏覽器上覆制下請求頭資訊。而且這樣寫最大的缺點是每個請求都帶的是同個請求頭,而對於一些反爬措施比較強的**來說就有可能檢測到你的爬蟲程式,直接把你的 ip 給封鎖。
在實際的工作中我每次發起的請求都會用不同的請求頭,並且是隨機的選取乙個請求頭。而且用法非常的簡單,你只需要兩行**就可以完成。
這裡就要給大家介紹乙個簡單實用的庫「fake-useragent」,它可以偽裝生成 headers 請求頭中的 user agent 值。使用方法也很簡單,大家看下**就懂的了。
from fake_useragent import useragentfor i in range(10):
ua = useragent()
headers =
print(headers)
首先你需要先安裝下 fake_useragent 庫,然後在匯入 useragent 類,使用它的 random 函式,每次執行後就會隨機給你返回乙個請求頭,隨機性非常的強,而且都不帶重複。
甚至你可以制定生產某種瀏覽器的請求頭
from fake_useragent import useragentua = 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 做專案的公司夢想往...