urllib庫是python內(nèi)置的http請求庫,包含四個模塊:
函數(shù) | 說明 |
---|---|
urllib.request | 請求模塊 |
urllib.error | 異常處理模塊 |
urllib.parse | URL解析模塊 |
urllib.robotparser | robots.txt模塊 |
robots.txt是Robots協(xié)議(網(wǎng)絡(luò)爬蟲排除協(xié)議),是互聯(lián)網(wǎng)界通行的道德模范,基于以下原則:
- 搜索技術(shù)應(yīng)服務(wù)于人類,同時尊重信息提供者的意愿,并維護(hù)其隱私權(quán)
- 網(wǎng)站有義務(wù)保護(hù)其使用者的個人信息和隱私不被侵犯
爬取白度網(wǎng)頁
import urllib.request
respone=urllib.request.urlopen('http://www.baidu.com')
html=respone.read().decode('UTF-8')
print(html)
核心的爬蟲代碼:urlopen.request.urlopen(url,data=None,
[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)
參數(shù) | 說明 |
---|---|
url | 目標(biāo)資源在網(wǎng)站的位置 |
data | 指明額外的請求信息 |
timeout | 超時時間,秒 |
cafile/capath/cadefault | 實(shí)現(xiàn)可信任的CA證書的HTTPS請求 |
context | 實(shí)現(xiàn)SSL加密傳輸 |
- data參數(shù)只在打開htttp網(wǎng)址時起作用,默認(rèn)為None,以GET發(fā)送請求,設(shè)置后請求方式改為POST
- data參數(shù)必須是bytes對象,符合the standard applocation/x-www-form-urlencoded format標(biāo)準(zhǔn)
-
urlib.parse.urlencode()可以將自定義的data轉(zhuǎn)化為標(biāo)準(zhǔn)格式,該函數(shù)接受mapping類型參數(shù)(dict或兩個元素的元組)
data參數(shù)的使用:
import urllib
data=bytes(urllib.parse.urlencode({'world':'hello'}).encode('utf-8'))
response=urllib.request.urlopen('http://httpbin.org/post',data=data)
print(response.read())
import urllib
response=urllib.request.urlopen('http://httpbin.org/get',timeout=1)
print(response.read())
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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