python3的urllib2
① python爬蟲-常用的請求方式
爬蟲的請求方式常用的有urllib和requests,前者是自帶模塊,後者需要我們自己進行安裝。
安裝requests模塊
注意:在 python2 中,urllib 被分為urllib,urllib2等,在python3中我們直接使用urllib
雖然Python的標准庫中 urllib 模塊已經包含了平常我們使用的大多數功能,但是它的 API 使用起來讓人感覺不太好,而 Requests 自稱 "HTTP for Humans",說明使用更簡潔方便。
② python3.4沒有 urllib2
py3版本之後urllib模塊合並為urllib.request了。
原先的一些函數方法變化不大,只是多加了一個request而已。比如urllib.request.urlopen()
參考:http://www.cnblogs.com/Lands-ljk/p/5447127.html
③ python3中怎麼沒有urllib2
urllib2是python2自帶的模塊,不需要下載。
urllib2在python3.x中被改為urllib ,你直接輸入urllib就可以了
>>>importurllib
下圖是我電腦上的Python3.5版本的
④ python3中使用urllib進行https請求
剛入門python學習網路爬蟲基礎,我使用的python版本是python3.6.4,學習的教程參考 Python爬蟲入門教程
python3.6的版本已經沒有urllib2這個庫了,所以我也不需要糾結urllib和urllib2的區別和應用場景
參考這篇官方文檔 HOWTO Fetch Internet Resources Using The urllib Package 。關於http(s)請求一般就get和post兩種方式較為常用,所以寫了以下兩個小demo,url鏈接隨便找的,具體場景具體變化,可參考注釋中的基本思路
POST請求:
GET請求:
注意,
使用ssl創建未經驗證的上下文,在urlopen中需傳入上下文參數
urllib.request.urlopen(full_url, context=context)
這是Python 升級到 2.7.9 之後引入的一個新特性,所以在使用urlopen打開https鏈接會遇到如下報錯:
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)
所以,當使用urllib.urlopen打開一個 https 鏈接時,需要先驗證一次 SSL 證書
context = ssl._create_unverified_context()
或者或者導入ssl時關閉證書驗證
ssl._create_default_https_context =ssl._create_unverified_context
⑤ python3中為什麼urlparse.urljoin沒有了
python3對urllib和urllib2進行了重構,拆分成了urllib.request, urllib.response, urllib.parse, urllib.error等幾個子模塊,這樣的架構從邏輯和結構上說更加合理。
urljoin現在對應的函數是urllib.parse.urljoin
⑥ python urllib2模塊 在哪裡下載
urllib2是python自帶的模塊,不需要下載。
urllib2在python3.x中被改為urllib.request
⑦ python3中urllib2找不到怎麼辦
在python2中使用的urllib2庫在python3中不存在怎麼解決呢?在python3中是urllib.request.urlopen代替了urllib2.
最後列印結果