02requests的使用
requests的使用
一、requests模塊
1.1 request模塊的安裝
在CMD命令行中執(zhí)行如下命令進(jìn)行在線安裝
pip install requests
由于網(wǎng)絡(luò)的不穩(wěn)定性有時(shí)會(huì)導(dǎo)致下載失敗,在下載的時(shí)候我們可以加上第三方源進(jìn)行下載
清華:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中國科技大學(xué) https://pypi.mirrors.ustc.edu.cn/simple/
華中理工大學(xué):http://pypi.hustunique.com/
山東理工大學(xué):http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
pip install requests -i https://pypi.mirrors.ustc.edu.cn/simple/
1.2 request模塊的使用
-
requests.get():表示向網(wǎng)站發(fā)送GET請(qǐng)求,獲取頁面響應(yīng)對(duì)象。語法如下:
response = requests.get(url,headers=headers,params)url:要抓取的url地址。- headers:用于包裝請(qǐng)求頭信息。
params:請(qǐng)求時(shí)攜帶的查詢字符串參數(shù)。
-
HttpResponse響應(yīng)對(duì)象:我們使用requests模塊向一個(gè)URL發(fā)起請(qǐng)求后會(huì)返回一個(gè)HttpResponse響應(yīng)對(duì)象。- 響應(yīng)對(duì)象屬性:
- text:獲取響應(yīng)內(nèi)容字符串類型
- content:獲取到響應(yīng)內(nèi)容bytes類型(抓取圖片、音頻、視頻文件)
- encoding:查看或者指定響應(yīng)字符編碼
- request.headers:查看響應(yīng)對(duì)應(yīng)的請(qǐng)求頭
- cookies:獲取響應(yīng)的cookie,經(jīng)過了set-cookie動(dòng)作;返回
cookieJar類型 json():將json字符串類型的響應(yīng)內(nèi)容轉(zhuǎn)換為python對(duì)象
- 響應(yīng)對(duì)象屬性:
-
發(fā)送帶header的請(qǐng)求
http://httpbin.org/get?usernane=1 查看get請(qǐng)求的一些參數(shù)
import requests url = 'http://httpbin.org/get' headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36' } html = requests.get(url=url,headers=headers).text print(html)-
發(fā)送帶參數(shù)的請(qǐng)求
- 直接對(duì)含有參數(shù)的URL發(fā)起請(qǐng)求
- 通過
params攜帶參數(shù)字典 - 構(gòu)建請(qǐng)求參數(shù)字典
- 向接口發(fā)送請(qǐng)求的時(shí)候帶上參數(shù)字典,參數(shù)字典設(shè)置給
params
- 向接口發(fā)送請(qǐng)求的時(shí)候帶上參數(shù)字典,參數(shù)字典設(shè)置給
-
-
處理cookie相關(guān)的請(qǐng)求:Cookie是一個(gè)記錄了用戶登錄狀態(tài)以及用戶屬性的字符串。當(dāng)你第一次登陸網(wǎng)站時(shí),服務(wù)端會(huì)在返回的Response Headers中添加Cookie, 瀏覽器接收到響應(yīng)信息后,會(huì)將Cookie 保存至瀏覽器本地存儲(chǔ)中,當(dāng)你再次向該網(wǎng)站發(fā)送請(qǐng)求時(shí),請(qǐng)求頭中就會(huì)攜帶Cookie,這樣服務(wù)器通過讀取 Cookie 就能識(shí)別登陸用戶了。
headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36", "Cookie":"__utma=32101439.446453095.1567515939.1567855225.1596027512.4; __utmc=32101439; __utmz=32101439.1596027512.4.1.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmt=1; __utmb=32101439.1.10.1596027512" }cookie_dict = {"cookie的key:“cookie的value"} requests.get(url, headers=headers, cookies=cookie_dict) -
requests.post():適用場(chǎng)景 : Post類型請(qǐng)求的網(wǎng)站
requests.post(url=url,data=data,headers=headers) -
requests提供了一個(gè)叫做session類,來實(shí)現(xiàn)客戶端和服務(wù)端的會(huì)話保持。會(huì)話能讓我們?cè)谡?qǐng)求時(shí)候保持某些參數(shù),比如在同一個(gè) Session 實(shí)例發(fā)出的所有請(qǐng)求之間保持 cookie
二、反爬手段
1.UA偽裝
UA為用戶代理,服務(wù)器能夠識(shí)別客戶使用的操作系統(tǒng)及版本,瀏覽器信息等
2.代理IP
西次代理,快代理
3.驗(yàn)證碼訪問
超級(jí)鷹,云代碼平臺(tái)
4.動(dòng)態(tài)加載網(wǎng)頁
selenium驅(qū)動(dòng)真實(shí)瀏覽器發(fā)動(dòng)請(qǐng)求
5.數(shù)據(jù)加密
分析js代碼

浙公網(wǎng)安備 33010602011771號(hào)