亚洲农村老熟妇肥BBBB_无码人妻精品一区二区蜜桃色_精品亚洲AⅤ无码午夜在线观看_中文字幕熟妇人妻在线视频_囯产色无码精品视频免费

當(dāng)前位置: 首頁 > 科技新聞 >

學(xué)習(xí)爬蟲的第46天,我知道了偽裝的原因,向免費(fèi)

時間:2020-05-14 18:02來源:網(wǎng)絡(luò)整理 瀏覽:
一般來說,獲取數(shù)據(jù)使用 urllib庫獲取頁面。獲取頁面數(shù)據(jù)的幾個知識點(diǎn):對每一個頁面,調(diào)用 askURL函數(shù)獲取頁面內(nèi)容;定義一個獲取頁面

一般來說,獲取數(shù)據(jù)使用 urllib庫獲取頁面。

獲取頁面數(shù)據(jù)的幾個知識點(diǎn):

對每一個頁面,調(diào)用 askURL函數(shù)獲取頁面內(nèi)容;

定義一個獲取頁面的函數(shù)askURL,傳入一個url函數(shù),表示網(wǎng)址。

urllib.Request生成請求:rullib.urlopen發(fā)送請求獲取響應(yīng),read獲取頁面內(nèi)容。

在訪問頁面時經(jīng)常會出現(xiàn)錯誤,為了程序正常運(yùn)行,要加入異常獲取try...excepy...語句

也就是說,想要快樂玩耍,必須要明白 urllib庫 如何使用。


get請求

新建個 py 文件,敲幾行代碼了解下urllib庫。

學(xué)習(xí)爬蟲的第46天,我知道了偽裝的原因,向免費(fèi)吃飯又進(jìn)了一步

這個的意思就是,通過 urlopen 方法打開相應(yīng)網(wǎng)頁,并把網(wǎng)頁返回給定義變量。

讀取結(jié)果就是網(wǎng)頁的源代碼。

這里切記要對獲取的網(wǎng)頁源碼進(jìn)行 utf-8 解析。

話說,感覺這個跟之前學(xué)到的 requests 的作用差不多啊。

這種獲取網(wǎng)頁的方式叫做獲取 get 請求。

這個課程有個小缺點(diǎn),就是因?yàn)槭敲嫦虼髮W(xué)生的,所以之前他應(yīng)該是有跟這幫孩子講過網(wǎng)頁的一些相關(guān)知識的,所以有時候涉及到網(wǎng)頁的一些內(nèi)容,他會直接拿來就用。

有時候會讓我們這種小白一臉懵逼。

但是問題不大,畢竟作為大學(xué)老師,都知道大部分學(xué)生是啥水平,所以以前講過的內(nèi)容再用的時候,也不敢用的太多,淺嘗輒止而已,最多就是用幾個概念罷了。

對我們來說,偶爾碰到幾個不懂或者沒聽過的詞,也不怕。

畢竟,每個宅男碰到問題,都有一個最忠誠的女朋友幫我們解決問題--度娘。

學(xué)習(xí)爬蟲的第46天,我知道了偽裝的原因,向免費(fèi)吃飯又進(jìn)了一步

post請求

另一個獲取網(wǎng)頁的方式叫做 post 請求, post方式就是訪問網(wǎng)址的時候可以給服務(wù)器發(fā)送一個表單,在里面把用戶名、密碼加密。

即模擬用戶真實(shí)登錄時使用。

這里為了方便,使用專門測試用的網(wǎng)址:httpbin.org

學(xué)習(xí)爬蟲的第46天,我知道了偽裝的原因,向免費(fèi)吃飯又進(jìn)了一步

這里需要使用 urllib 的 parse 方法,將下面的 bytes 中的鍵值對進(jìn)行解析。

使用 bytes 將數(shù)據(jù)變?yōu)樽止?jié)文件進(jìn)行封裝。

鍵值對中一般放入用戶名、密碼以及cookie信息。

學(xué)習(xí)爬蟲的第46天,我知道了偽裝的原因,向免費(fèi)吃飯又進(jìn)了一步

這里有意思的是圖中的最后一行:"User-Agent": "Python-urllib/3.8"

也就是說,直接赤果果的告訴服務(wù)器:喂,老兄,哥是用Python訪問的,不是用瀏覽器訪問的,換句話說,我跟你一樣,都不是個人!

所以以前總聽人家說,爬蟲必須要偽裝巴拉巴拉什么的,我估計(jì)應(yīng)該主要原因就是在這里。

你得讓服務(wù)器從你的訪問信息里面讀出了,哦,這是通過瀏覽器訪問的,也就是說,是個活生生的人,所以,讓他進(jìn)來吧。


超時處理

有時候網(wǎng)速可能不好,也有的時候?qū)Ψ桨l(fā)現(xiàn)我方是爬蟲,不想讓我方訪問。

這兩種情況都叫做超時。

網(wǎng)站或程序此時會卡死。

這里使用 timeout 可以進(jìn)行設(shè)定時間。

更重要的是,使用 try...excepy...語句 進(jìn)行異常監(jiān)測。

學(xué)習(xí)爬蟲的第46天,我知道了偽裝的原因,向免費(fèi)吃飯又進(jìn)了一步

也就是說,對于超時,要有一個計(jì)劃性的準(zhǔn)備。

如果在一個指定的時間內(nèi)(如3秒、5秒等),服務(wù)器還沒有反應(yīng),那就應(yīng)該進(jìn)行結(jié)束這次循環(huán),或者不要爬取這個網(wǎng)頁的操作。

推薦內(nèi)容