衣帶漸寬終不悔,為伊消得人憔悴。
**urllib.request模組:
該模組是urllib的核心模組用於傳送請求,獲取請求返回結果。
urlopen()發起請求:
response =urllib.request.urlopen(url,data=none, [timeout, ]*, cafile=none, capath=none, cadefault=false, context=none)
引數解析:
timeout 引數是用於設定請求超時時間。單位是秒。
cafile和capath代表 ca 證書和 ca 證書的路徑。如果使用https則需要用到
context引數必須是ssl.sslcontext型別,用來指定ssl設定
cadefault引數已棄用。
urlopen()只能發起的簡單的請求,實際使用的價值低,了解即可。為了能發起相對較複雜的請求,需要用到
request()方法,用於構建request例項,然後給openurl傳參,訪問目標位址。
.request()發起請求:
request= urllib.request.request(url, data=none, headers={}, origin_req_host=none, unverifiable=false, method=none)
引數解析:
url:請求位址
data:同urlopen()方法一致。
headers:使用者設定http請求頭。是乙個字典。新增方法除了在request()中間新增,可以在request例項的 add_header() 方法來新增請求頭。
origin_req_host 引數指的是請求方的 host 名稱或者 ip 位址
unverifiable 引數表示這個請求是否是無法驗證的,預設值是false。意思就是說使用者沒有足夠許可權來選擇接收這個請求的結果。例如我們請求乙個html文件中的,但是我們沒有自動抓取影象的許可權,我們就要將 unverifiable 的值設定成 true。
method 引數指的是發起的 http 請求的方式,有 get、post、delete、put等
request與urlopen的簡單運用例項:
import urllib.request
url = ""
#構建request例項,
request = urllib.request.request(url,headers=headers)
#也可以通過下面這種方式進行設定header
#request = urllib.request.request(url)
response = urllib.request.urlopen(request,timeout=2.0)
print(response)
print(response.read().decode('utf-8'))
request**設定
#使用proxyhandler 進行**配置。
proxy_handle = urllib.request.proxyhandler()
#使用build_opener創建立乙個openerdirector 物件
opener = urllib.request.build_opener(proxy_handle)
#建立乙個自定義的openerdirector 物件,此時的openerdirector為全域性變數
urllib.request.install_opener(opener)
#使用自定義出來的openerdirector 物件訪問位址(此時使用的**位址。)
response = urllib.request.urlopen(request)
使用 urllib.request.urlopen() 或者 opener.open(url) 返回結果是乙個 http.client.httpresponse 物件。
它具有 msg、version、status、reason、debuglevel、closed等屬性
read()、readinto()、getheader(name)、getheaders()、fileno()等函式。
• proxyhandler:為請求設定**
• httpcookieprocessor:處理 http 請求中的 cookies
• httpdefaulterrorhandler:處理 http 響應錯誤。
• httpredirecthandler:處理 http 重定向。
• httppasswordmgr:用於管理密碼,它維護了使用者名稱密碼的表。
• httpbasicauthhandler:用於登入認證,一般和 httppasswordmgr 結合使用。
#後期完善
Python爬蟲自學筆記 基礎篇
爬蟲通過編寫程式來模擬瀏覽器上網,讓其去網際網路上抓取資料。一般用於抓取頁面上特定的資料,並運用各種資料分析手段來使資料體現使用價值。爬蟲本身在法律中是不被禁止的,但爬取資料具有違法風險。一般的搜尋引擎都具有自己的抓取系統,這樣的爬取是被支援的。但如搶票爬蟲等損害他人利益的爬蟲即為惡意爬蟲。惡意爬蟲...
python爬蟲之基礎概念篇
最近在學爬蟲,把學習過程做個記錄,也方便自己以後檢視。一 基礎概念篇 爬蟲在使用場景中的分類 通用爬蟲 抓取系統重要組成部分。抓取的是一整張頁面資料。聚焦爬蟲 是建立在通用爬蟲的基礎之上。抓取的是頁面中特定的區域性內容。增量式爬蟲 檢測 中資料更新的情況。只會抓取 中最新更新出來的資料。robots...
python網路爬蟲實戰1 基礎篇
很多資料並沒有存在自家的資料庫中,在大資料時代,很多的資料都放在網路上,以網頁的形式呈現給大家。我們如何將這些沒有固定格式的非結構化資料批量從網路上拷貝下來,並提供給後來者進行資料價值的挖掘,是一件非常有意義的事情。這裡,我們必須借助etl extract,transformation,loadin...