1. 程式人生 > >請求網頁幾個常用庫的用法:

請求網頁幾個常用庫的用法:

完成 data report 第三方庫 () .get 參數說明 進度 函數

1、urllib urlopen()方法urllib.urlopen(url[, data[, proxies]]) :創建一個表示遠程url的類文件對象,然後像本地文件一樣操作這個類文件對象來獲取遠程數據。參數url表示遠程數據的路徑,一般是網址;參數data表示以post方式提交到url的數據;參數proxies用於設置代理。urlopen返回 一個類文件對象,它提供了如下方法:read() , readline() , readlines() , fileno() , close() :這些方法的使用方式與文件對象完全一樣;info():返回一個httplib.HTTPMessage 對象,表示遠程服務器返回的頭信息getcode():返回Http狀態碼。如果是http請求,200表示請求成功完成;404表示網址未找到urlretrieve()方法直接將遠程數據下載到本地。urllib.urlretrieve(url[, filename[, reporthook[, data]]])參數說明:url:外部或者本地urlfilename:指定了保存到本地的路徑(如果未指定該參數,urllib會生成一個臨時文件來保存數據);reporthook:是一個回調函數,當連接上服務器、以及相應的數據塊傳輸完畢的時候會觸發該回調。我們可以利用這個回調函數來顯示當前的下載進度。data:指post到服務器的數據。該方法返回一個包含兩個元素的元組(filename, headers),filename表示保存到本地的路徑,header表示服務器的響應頭。

2、urllib2

urlopen()

用URL=‘’直接打開無需模擬瀏覽器訪問的頁面

不能直接訪問的頁面,模擬瀏覽器訪問:

request=urllib2.Request(url,headers)定制含有headers的URL請求

r=urllib2.urlopen(request)

print(r.read())

eg:

url = "http://www.qiushibaike.com/"

# 頭部信息,有些網站需加headers才能訪問headers = {‘User-Agent‘:‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0‘}request = urllib2.Request(url = url,headers = headers )# 發送請求、接收信息response = urllib2.urlopen(request )urllib 、urllib 2在2.x環境下能正常引入,在3.x環境下會報 module ‘urllib‘ has no attribute ‘urlopen‘錯誤3、requests----------------第三方庫,需要下載

requests.get(

‘https://www.douban.com/‘)

用URL=‘’直接打開無需模擬瀏覽器訪問的頁面

不能直接訪問的頁面,模擬瀏覽器訪問:

r =requests.get(url,headers=headers)

print(r.content)

請求網頁幾個常用庫的用法: