三 學習分布式爬蟲之requests庫

2021-10-02 16:48:42 字數 2369 閱讀 2088

雖然python的標準庫中的urllib模組已經包含了平常我們使用的大多數功能,但是它的api使用起來讓人感覺不太好,而requests宣傳「http for humans」,說明使用更簡便。

requests使用python語言編寫,基於urllib,但是它比urllib更加方便,可以節約我們大量的工作,完全滿足http測試需求。

安裝:pip install requests

傳送get請求

import requests

#新增header和查詢引數

headers =

#params 接收乙個字典或字串的查詢引數,字典型別自動轉換為url編碼,無需urlencode

kw =

#傳送get請求

response = requests.get(

'',headers=headers,params=kw)

print

(response)

#print

(response.url)

print

(response.text)

#字串形式

print

(response.content)

#位元組流形式

傳送post請求

resp = requests.post(url,data=字典,headers=headers)
使用**

在requests庫中使用**,只要在請求的方法中(get,post)傳遞proxies引數就行

#未使用**

# import requests

# url = ''

# resp = requests.get(url)

# print(resp.text) #"origin": "111.29.161.238"

#使用**

import requests

proxy =

url =

''resp = requests.get(url,proxies=proxy)

print

(resp.text)

#"origin": "182.101.207.11"

requests庫處理cookie

如果在乙個響應中包含了cookie,那麼可以利用cookies屬性拿到這個返回的cookie值

import requests

#requests中獲取cookie

import requests

resp = requests.get(

'')print

(resp.cookies)

print

(resp.cookies.get_dict(

))

requests庫利用session共享cookie

session:使用requests也可以達到共享cookie的目的,那就是requests庫提供的session物件。注意:這裡的session不是web開發中的session,這裡只是乙個會話的物件而已。

#使用requests庫中的session實現共享cookie

import requests

#登入頁面**

post_url =

''post_data =

headers =

sess = requests.session(

)#例項化乙個session物件

sess.post(post_url,post_data,headers=headers)

#登入後sess已經擁有cookie

#個人頁面**

url =

''resp = sess.get(url,headers=headers)

#利用sess共享cookie實現對個人網頁的爬取

print

(resp.text)

通過requests庫處理不被信任的ssl證書

ssl證書:類似於營業執照

在請求的方法中加入verify=false即可

import requests

url =

''resp = requests.get(url,verify=

false

)print

(resp.content.decode(

'utf-8'

))

爬蟲 分布式爬蟲

爬蟲的本質 很多搞爬蟲的總愛吹噓分布式爬蟲,彷彿只有分布式才有逼格,不是分布式簡直不配叫爬蟲,這是一種很膚淺的思想。分布式只是提高爬蟲功能和效率的乙個環節而已,它從來不是爬蟲的本質東西。爬蟲的本質是網路請求和資料處理,如何穩定地訪問網頁拿到資料,如何精準地提取出高質量的資料才是核心問題。分布式爬蟲只...

分布式爬蟲之celery

以爬douban 為例 首先啟動redis,新建檔案crawl douban.py import requests from bs4 import beautifulsoup import time from celery import celery import redis from config...

分布式爬蟲

乙個基於scrapy redis的分布式爬蟲模板,在scrapy redis自帶的example的基礎上進行修改,新增在實際爬取過程中大部分爬蟲可能用到的功能,使的構建分布式爬蟲更加的簡單。scrapy redis windows ubuntu sudo apt get install redis ...