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