Python爬虫==【openurl】
本文以爬取百度首頁(yè)為示例來(lái)學(xué)習(xí),python版本為python3.6.7,完整代碼會(huì)在文章末附上
本次學(xué)習(xí)所用到的python框架:
urllib.request:
本次學(xué)習(xí)所用到的函數(shù):
urllib.request.urlopen():發(fā)送http的get請(qǐng)求
.read():讀取抓到的內(nèi)容
.decode("utf-8"):將獲取的betys格式數(shù)據(jù)轉(zhuǎn)換為string格式數(shù)據(jù)
1.發(fā)送http的get請(qǐng)求使用的函數(shù)urllib.request.urlopen() ,其返回內(nèi)容是所請(qǐng)求[做運(yùn)維的小年輕]的url的網(wǎng)頁(yè)源代碼 可以將返回的內(nèi)容賦給另外一個(gè)key
例如 response = urllib.request.urlopen(url)
代碼執(zhí)行結(jié)果:
好像是存在內(nèi)存里,這應(yīng)該展示的是一個(gè)內(nèi)存地址。
2.我們需要將內(nèi)容讀出來(lái)就用到了有一個(gè)函數(shù).read()
data = response.read() 將response的內(nèi)容讀出來(lái)賦值給data
代碼執(zhí)行結(jié)果:獲取的數(shù)據(jù)類型為bytes,沒(méi)有可讀性哈
3.需要進(jìn)行轉(zhuǎn)換將data轉(zhuǎn)換成字符串類型,用到函數(shù).decode("utf-8")
str_data = data.decode("utf-8")
代碼執(zhí)行結(jié)果:【ps:將上面的https改為http】不截圖了這里就能打印出url所對(duì)應(yīng)的網(wǎng)頁(yè)源代碼了
4.接下來(lái)是數(shù)據(jù)持久化的問(wèn)題【固定格式記住就行了】
代碼運(yùn)行會(huì)生成一個(gè)baidu.html保存的是上面搜抓取的內(nèi)容。
可以本地運(yùn)行會(huì)打開(kāi)一個(gè)瀏覽器頁(yè)面:
完整代碼見(jiàn)附件。
5.那我們?cè)谂老x(chóng)的時(shí)候也會(huì)有需求,將字符串轉(zhuǎn)換為你bytes格式,這就需要用到函數(shù).encode
代碼運(yùn)行結(jié)果:
Python爬取到的數(shù)據(jù)類型一般有兩種:str 、 bytes
如果是爬取回來(lái)的是bytes類型,但是需要寫(xiě)入的是str類型用到的就是第4條的.decode(utf-8)
如果爬取回來(lái)的是str類型,但是需要寫(xiě)入的是bytes類型用到的就是第5條對(duì)的.encode(utf-8)
總結(jié)
以上是生活随笔為你收集整理的Python爬虫==【openurl】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Pycharm安装和基本使用
- 下一篇: Centos7.6下安装Python3.