python爬蟲利器 request庫

2021-08-04 02:30:43 字數 2940 閱讀 2153

request庫比urllib2庫更為高階,因為其功能更強大,更易於使用。使用該庫可以十分方便我們的抓取。

基本請求

r = requests.get('')

r = requests.post("")

r = requests.put("")

r = requests.delete("")

r = requests.head("")

r = requests.options("")

基本get請求:

新增引數,可以使用params引數,新增headers,可以使用headers引數

import requests

payload =

r = requests.get("", params=payload, headers=headers)

print r.url

獲取伺服器原始套接字響應

r = requests.get('', stream=true)

r.raw

r.raw.read(10)

'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03'

基本post請求:

表單形式傳輸資料:

import requests

payload =

r = requests.post("", data=payload)

print r.text

jason格式傳輸資料:

import json

import requests

url = ''

payload =

r = requests.post(url, data=json.dumps(payload))

print r.text

如果要上傳檔案,直接使用file引數:

import requests

url = ''

files =

r = requests.post(url, files=files)

print r.text

cookies:

獲取cookies:

import requests

url = ''

r = requests.get(url)

print r.cookies

print r.cookies['example_cookie_name']

傳送cookies:

import requests

url = ''

cookies = dict(cookies_are='working')

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

print r.text

超時配置:

requests.get('', timeout=0.001)

**設定:

mport requests

proxies =

r = requests.post("", proxies=proxies)

print r.text

ssl證書驗證:

https開頭的**十分常見,requests可以為https請求驗證ssl證書,通過使用verify引數

import requests

r = requests.get('', verify=true)

print r.text

12306**的證書無效,通過設定verify=fasle。通過證書有效的**設定verify=true.預設情況下verify是true。
port requests

r = requests.get('', verify=true)

print r.text

會話物件:

以上請求其實相當於傳送乙個新的請求,相當於每個請求都用不同的瀏覽器單獨開啟的效果,也就是它們並不是指的乙個會話。

不在乙個會話中,無法獲取cookies,在一些站點中,需要保持乙個持久的會話,在不同的選項卡之間跳轉。

import requests

s = requests.session()

s.get('/set/sessioncookie/123456789')

r = s.get("")

print(r.text)

這樣就可以成功設定cookies和獲取cookies

}

import requests

s = requests.session()

s.headers.update()

r = s.get('', headers=)

print r.text

結果是同乙個會話,兩個變數都傳進去了

}

r = s.get('', headers=)
覆蓋掉原來的全域性配置

}

通過設定none不想要全域性變數中的乙個配置:

r = s.get('', headers=)
結果:

}

Python爬蟲 模擬瀏覽器訪問 Requests

有時候爬蟲需要加入請求頭來偽裝成瀏覽器,以便更好的抓取資料.開啟瀏覽器chrome找到user agent進行複製 headers headers get方法新增請求頭 print res.text 執行結果 requests庫不僅有get 方法,還有post 等方法.post 方法用於提交表單來爬...

Python 爬蟲利器 Selenium

前面幾節,我們學習了用 requests 構造頁面請求來爬取靜態網頁中的資訊以及通過 requests 構造 ajax 請求直接獲取返回的 json 資訊。還記得前幾節,我們在構造請求時會給請求加上瀏覽器 headers,目的就是為了讓我們的請求模擬瀏覽器的行為,防止被 的反爬蟲策略限制。今天要介紹...

Python 爬蟲利器 Selenium

前面幾節,我們學習了用 requests 構造頁面請求來爬取靜態網頁中的資訊以及通過 requests 構造 ajax 請求直接獲取返回的 json 資訊。還記得前幾節,我們在構造請求時會給請求加上瀏覽器 headers,目的就是為了讓我們的請求模擬瀏覽器的行為,防止被 的反爬蟲策略限制。今天要介紹...