Python3爬蟲系列之urllib庫

2021-09-28 16:30:18 字數 1857 閱讀 8186

最基本的網路請求庫。可以模擬瀏覽器的行為,向指定的伺服器傳送乙個請求,並可以儲存伺服器返回的資料,在python3urllib庫中,所有和網路請求相關的方法,都被集到urllib.request庫上

resp = request.urlopen('')

print(resp.read())

http.client.httpresponse 物件,故此用response做接收

from urllib import request request.urlretrieve('/','baidu1.html')
編碼解碼模組

from urllib import parse

data =

qs = parse.urlencode(data)

print

(qs)

name=%e7%88%ac%e8%99%ab%e5%9f%ba%e7%a1%80&greet=hello+world&age=100

—>編碼為unicode格式傳送

資料報在網路傳輸中,不能包含中文和特殊字元,需要進行解碼

用例:

from urllib import parse

qs =

"name=%e7%88%ac%e8%99%ab%e5%9f%ba%e7%a1%80&greet=hello+world&age=100"

print

(parse.parse_qs(qs)

)

執行結果:

描述解碼經過編碼的url

還有乙個對**資料進行解碼的函式decode(),如下

print

(resp.read(

).decode(

"utf-8"

))

如果抓取時以utf-8進行編碼傳輸,用utf-8解碼沒問題,否之不然,應先了解網頁的編碼方式,一般通過抓包查取

反反爬必備偽裝技術

–>模擬請求頭user-agent,爬蟲程式更像個瀏覽器

from urllib import request

headers =

req = request.request(

"/",headers=headers)

resp = request.urlopen(req)

print

(resp.read(

))

固定某ip在某段時間內對**伺服器訪問過多會被判定為非法訪問,從而被限制或直接封掉

handler = request.proxyhandler(

)opener = request.build_opener(handler)

req = request.request(

"")resp = opener.

open

(req)

print

(resp.read(

))

如需更系統學習,下面是博主關於python爬蟲的系列學習部落格

python3爬蟲入門(快速簡易)

python3爬蟲系列之urllib庫

python3爬蟲之request庫

python3爬蟲之xpath語法和lxml模組

python3爬蟲之資料儲存

python3爬蟲之scrapy框架入門

python3爬蟲入門案例scrapy爬取傳智講師個人資訊

python3爬蟲之scrapy框架模擬登陸人人網

python3反反爬蟲之scrapy設定隨機請求頭

python3爬蟲之開篇

寫在前面的話 折騰爬蟲也有一段時間了,從一開始的懵懵懂懂,到現在的有一定基礎,對於這一路的跌跌撞撞,個人覺得應該留下一些文本性的東西,畢竟好記性不如爛筆頭,而且畢竟這是吃飯的傢伙,必須用心對待才可以,從今天起,我將會把關於爬蟲的東西進行乙個整理,以供後期的查閱,同時也想將自己的一點點經驗分享給大家。...

python3爬蟲實戰(3)

今天心血來潮去爬取了一下招聘 的實時招聘資訊。是 選的條件是北京,實習生,計算機軟體。分析 之後發現還是很容易的,不過過程中出了不少小問題,在這裡分享一下。想要爬取的是類似的表單內容。是在ul的li裡。用beautifulsoup解析之後,tem ul bsoj.find ul 存下整個ul元素。對...

Python3入門系列之 字典

字典是一種可變容器模型,且存放任何型別對像 如 字串,數字,或者列表甚至字典 每個字典有鍵名 key 和鍵值 value 且用冒號 隔開 多個字典用逗號 隔開整個字典包括在花括號中 示例 注 key為鍵名,name為鍵值 dict dict 執行結果 name print dict key dict...