urllib庫是python內置的http請求庫,包含四個模塊:
函數 | 說明 |
---|---|
urllib.request | 請求模塊 |
urllib.error | 異常處理模塊 |
urllib.parse | URL解析模塊 |
urllib.robotparser | robots.txt模塊 |
robots.txt是Robots協議(網絡爬蟲排除協議),是互聯網界通行的道德模范,基于以下原則:
- 搜索技術應服務于人類,同時尊重信息提供者的意愿,并維護其隱私權
- 網站有義務保護其使用者的個人信息和隱私不被侵犯
爬取白度網頁
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)
參數 | 說明 |
---|---|
url | 目標資源在網站的位置 |
data | 指明額外的請求信息 |
timeout | 超時時間,秒 |
cafile/capath/cadefault | 實現可信任的CA證書的HTTPS請求 |
context | 實現SSL加密傳輸 |
- data參數只在打開htttp網址時起作用,默認為None,以GET發送請求,設置后請求方式改為POST
- data參數必須是bytes對象,符合the standard applocation/x-www-form-urlencoded format標準
-
urlib.parse.urlencode()可以將自定義的data轉化為標準格式,該函數接受mapping類型參數(dict或兩個元素的元組)
data參數的使用:
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())
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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