在爬蟲前,需要知道這兩個知識點!!!
字符串轉字節類型
str --> bytes
encode()
字節類型轉字符串
bytes --> str
decode()
1.以一個簡單的例子講解urllib.request方法
read 讀取相應內容,內容
geturl 獲取請求的url
getheaders 獲取頭部信息
getcode 獲取狀態碼
readlines 按行讀取,返回列表,都是字節類型
1.1獲取百度的網頁代碼
import urllib.request
url = "https://www.baidu.com"
response = urllib.request.urlopen(url)
#打印出來是二進制
print(response.read().decode('utf8'))
# 獲取狀態碼
print(response.getcode())
# 獲取響應頭
print(response.getheaders())
# 獲取url
print(response.geturl())
# 把讀取到的內容保存起來的兩種方法
# 第一種方法w以字符串寫入
with open("baidu.html","w",encoding='utf8') as f:
f.write(response.read().decode('utf8'))
#第二種方法 wb以二進制寫入
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)
#像圖片只能寫入到本地二進制的格式
# with open('qing.jpg','wb') as fp:
# fp.write(response.read())
#第二種方法
urllib.request.urlretrieve(image_url,'chun.jpg')
2.以一個簡單的例子講述parse方法
quote url編碼函數,將中文進行轉化為%xxx
unquote url解碼函數,將%xxx轉化為指定字符
urlencode 給一個字典,將字典拼接為query_string
2.1自己寫一個url進行操作
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方法!!!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
