在爬蟲前,需要知道這兩個(gè)知識(shí)點(diǎn)!!!
字符串轉(zhuǎn)字節(jié)類型
str --> bytes
encode()
字節(jié)類型轉(zhuǎn)字符串
bytes --> str
decode()
1.以一個(gè)簡(jiǎn)單的例子講解urllib.request方法
read 讀取相應(yīng)內(nèi)容,內(nèi)容
geturl 獲取請(qǐng)求的url
getheaders 獲取頭部信息
getcode 獲取狀態(tài)碼
readlines 按行讀取,返回列表,都是字節(jié)類型
1.1獲取百度的網(wǎng)頁(yè)代碼
import urllib.request
url = "https://www.baidu.com"
response = urllib.request.urlopen(url)
#打印出來是二進(jìn)制
print(response.read().decode('utf8'))
# 獲取狀態(tài)碼
print(response.getcode())
# 獲取響應(yīng)頭
print(response.getheaders())
# 獲取url
print(response.geturl())
# 把讀取到的內(nèi)容保存起來的兩種方法
# 第一種方法w以字符串寫入
with open("baidu.html","w",encoding='utf8') as f:
f.write(response.read().decode('utf8'))
#第二種方法 wb以二進(jìn)制寫入
with open("baidu.html","wb") as f:
f.write(response.read())
1.2爬取百度里面的圖片為例子
import urllib.request
image_url = 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=
1561806237168&di=319407f10b4c55baf1d5b905d8a2f20a&imgtype=0&src=http%3A%2F%2
Fimg2.ph.126.net%2F2zB3_wWPXlEW0RdwQa8d6A%3D%3D%2F2268688312388037455.jpg'
#第一種方法
# response = urllib.request.urlopen(image_url)
#像圖片只能寫入到本地二進(jìn)制的格式
# with open('qing.jpg','wb') as fp:
# fp.write(response.read())
#第二種方法
urllib.request.urlretrieve(image_url,'chun.jpg')
2.以一個(gè)簡(jiǎn)單的例子講述parse方法
quote url編碼函數(shù),將中文進(jìn)行轉(zhuǎn)化為%xxx
unquote url解碼函數(shù),將%xxx轉(zhuǎn)化為指定字符
urlencode 給一個(gè)字典,將字典拼接為query_string
2.1自己寫一個(gè)url進(jìn)行操作
import urllib.parse
url = 'http://www.baidu.com/index.html'
#http://www.baidu.com/index.html?name=goudan&age=18&sex=nv&height=180
name = '狗蛋'
age = 18
sex = '女'
height = '180'
data={
'name':name,
'age':age,
'sex':sex,
'height':height
}
#第一種方法
query_string = urllib.parse.urlencode(data)
print(query_string)
#第二種方法
#遍歷字典
# it = []
# for k,v in data.items():
# it.append(k+'='+str(v))
# query_string = '&'.join(it)
url = url+'?'+query_string
print(url)
這就是request與parse方法!!!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

