requests的安裝與簡單運用

2022-07-21 11:00:23 字數 2311 閱讀 1102

requests是python的乙個http客戶端庫,跟urllib,urllib2類似,那為什麼要用requests而不用urllib2呢?官方文件中是這樣說明的:

python的標準庫urllib2提供了大部分需要的http功能,但是api太逆天了,乙個簡單的功能就需要一大堆**。

我也看了下requests的文件,確實很簡單,適合我這種懶人。下面直接看文件。

看下他的強大之處:

最原始的爬蟲爬蟲可以只是傳送乙個http請求,並獲取返回的響應資料,使用requests三行就可以寫出乙個簡單的爬蟲,**如下:

import

requests

r = requests.get('

')print r.content

給原始爬蟲公升級幾個技能就可以投入使用了,我經常公升級以下幾個功能。

beautifulsoup可以將html解析為dom樹,然後獲取特定字段。關於beautifulsoup的詳細內容可以看這篇文章,這裡只舉乙個簡單的例子。

以下是途牛某遊玩頁面的部分**

class="

des">

class="

address mb_5

">class="

c_999

">地      址:

class="

othmes

">

class="

t1">class="

c_999

c_f80

">4小時

可以通過..這個特徵來獲取4小時這個字段:

import

requests

from bs4 import

beautifulsoup as bs

url = '

'r =requests.get(url)

soup =bs(r.content)

print soup.find('

b', class_='

c_f80

').string

#輸出欄位有空格,可以通過strip()函式來過濾多餘的空格和換行

注:也可以用requests和lxml的方式抓取。

為避免遮蔽,抓取時通常需要**,使用requests的proxies引數可以實現這個效果。接上面**:

proxies =

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

如果**需要賬戶和密碼,則需這樣:

proxies =

headers =

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

為了提高抓取速度,一般都會採用多執行緒的方式去抓取,可採用了第三方庫threadpool的形式實現了多執行緒。在這裡我採用另外一種形式,用標準庫multiprocessing來實現:

import

requests

from bs4 import

beautifulsoup as bs

from multiprocessing.dummy import

pool as threadpool

#url列表

urls =[ '

', '','

','',#

etc.. ]#

提取字段函式

defget_play_time(url):

r =requests.get(url)

soup =bs(r.content)

print soup.find('

b', class_='

c_f80

').string.strip()

#設定執行緒數

pool = threadpool(4)

#開啟多執行緒

results =pool.map(get_play_time, urls)

#關閉執行緒並等待結束

pool.close()

pool.join()

注:這個多執行緒的實現主要參考了這篇文章。

有時候如果所需欄位出現在js等dom樹之外,可以直接使用正則的方式獲取,有時候速度反而會更快一點。

很多**會將重點內容放在js中,增加了抓取的難度。這種可以通過selenium+phantomjs+xpath的方式抓取。有點跑題了……哈哈

23 requests安裝與使用

在介紹requests庫之前,先貼一下requests官網,當然也可以訪問requests中文 requests官網給出以下介紹 requests 唯一的乙個非轉基因的 python http 庫,人類可以安全享用。但同時也給出了警告 非專業使用其他 http 庫會導致危險的 包括 安全缺陷症 冗餘...

requests模組的簡單使用

簡單來說,requests就是乙個可以模擬傳送請求的庫。安裝方法 pip install requests幫助文件 直接呼叫requests模組的get方法就可以傳送get請求。返回值為乙個response物件 import requests url response requests.get ur...

Python之requests的安裝

在 windows 系統下,只需要輸入命令 pip install requests 即可安裝。在 linux 系統下,只需要輸入命令 sudo pip install requests 即可安裝。注 關於python第三方庫的安裝最好少使用 easy install,因為 easy install...