?前言
大家好,我是yma16,本文分享關(guān)于python的requests庫用法。
該系列文章:
python爬蟲_基本數(shù)據(jù)類型
python爬蟲_函數(shù)的使用
?requests庫
requests可以用來發(fā)送http請(qǐng)求。
對(duì)比瀏覽器發(fā)送的請(qǐng)求
- requests是在python的運(yùn)行環(huán)境發(fā)送請(qǐng)求,不存在限制跨域,無ui界面,優(yōu)勢(shì)在于自動(dòng)化
- 瀏覽器發(fā)送請(qǐng)求被瀏覽器的安全機(jī)制限制,會(huì)存在跨域(協(xié)議、端口、域名),ui界面,用戶體驗(yàn)好
?? pip安裝requests
pip安裝
$ pip install requests
requests的api方法
api | description |
---|---|
delete(url, args) | 發(fā)送 DELETE 請(qǐng)求到指定 url |
get(url, params, args) | 發(fā)送 GET 請(qǐng)求到指定 url |
head(url, args) | 發(fā)送 HEAD 請(qǐng)求到指定 url |
patch(url, data, args) | 發(fā)送 PATCH 請(qǐng)求到指定 url |
post(url, data, json, args) | 發(fā)送 POST 請(qǐng)求到指定 url |
put(url, data, args) | 發(fā)送 PUT 請(qǐng)求到指定 url |
request(method, url, args) | 向指定的 url 發(fā)送指定的請(qǐng)求方法 |
requests返回的api方法
api | description |
---|---|
apparent_encoding | 編碼方式 |
close() | 關(guān)閉與服務(wù)器的連接 |
content | 返回響應(yīng)的內(nèi)容,以字節(jié)為單位 |
cookies | 返回一個(gè) CookieJar 對(duì)象,包含了從服務(wù)器發(fā)回的 cookie |
elapsed | 返回一個(gè) timedelta 對(duì)象,包含了從發(fā)送請(qǐng)求到響應(yīng)到達(dá)之間經(jīng)過的時(shí)間量,可以用于測(cè)試響應(yīng)速度。比如 r.elapsed.microseconds 表示響應(yīng)到達(dá)需要多少微秒。 |
encoding | 解碼 r.text 的編碼方式 |
headers | 返回響應(yīng)頭,字典格式 |
history | 返回包含請(qǐng)求歷史的響應(yīng)對(duì)象列表(url) |
is_permanent_redirect | 如果響應(yīng)是永久重定向的 url,則返回 True,否則返回 False |
is_redirect | 如果響應(yīng)被重定向,則返回 True,否則返回 False |
iter_content() | 迭代響應(yīng) |
iter_lines() | 迭代響應(yīng)的行 |
json() | 返回結(jié)果的 JSON 對(duì)象 (結(jié)果需要以 JSON 格式編寫的,否則會(huì)引發(fā)錯(cuò)誤) |
links | 返回響應(yīng)的解析頭鏈接 |
next | 返回重定向鏈中下一個(gè)請(qǐng)求的 PreparedRequest 對(duì)象 |
ok | 檢查 “status_code” 的值,如果小于400,則返回 True,如果不小于 400,則返回 False |
raise_for_status() | 如果發(fā)生錯(cuò)誤,方法返回一個(gè) HTTPError 對(duì)象 |
reason | 響應(yīng)狀態(tài)的描述,比如 “Not Found” 或 “OK” |
request | 返回請(qǐng)求此響應(yīng)的請(qǐng)求對(duì)象 |
status_code | 返回 http 的狀態(tài)碼,比如 404 和 200(200 是 OK,404 是 Not Found) |
text | 返回響應(yīng)的內(nèi)容,unicode 類型數(shù)據(jù) |
url | 返回響應(yīng)的 URL |
?? requests get
訪問 csdn主頁html
目標(biāo)網(wǎng)站:https://www.csdn.net/
示例:
# 導(dǎo)入 requests
import requests
# 發(fā)送請(qǐng)求
response = requests.get('https://www.csdn.net/')
print(response)
print(response.text)
運(yùn)行結(jié)果:
訪問 查詢CSDN用戶
接口:https://so.csdn.net/api/v1/relevant-search
參數(shù)
- query {string} 用戶名稱,如 yma16
- platform {string} 平臺(tái),如 PC
模擬請(qǐng)求查詢 名為 yma16的csdn用戶
# 導(dǎo)入 requests
import requests
url='https://so.csdn.net/api/v1/relevant-search'
params = {'query':'yma16','platform':'pc'}
# 設(shè)置請(qǐng)求頭
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"}
response = requests.get(url=url,params=params,headers=headers)
print(response)
print(response.json())
運(yùn)行結(jié)果:
與瀏覽器中csdn查詢一致
?? requests post
post點(diǎn)贊csdn博客
接口:https://blog.csdn.net//phoenix/web/v1/article/like
參數(shù)
- userId 用戶id
- articleId 文章id
示例給yma16的博客點(diǎn)贊
注意:需要配置請(qǐng)求頭cookie,這里我把cookie放在txt然后讀入
# 導(dǎo)入 requests
import requests
# 讀取cookie
def readTxtFile():
path='./'
with open(path+'cookie.txt', 'r', encoding='utf-8') as file:
lines = file.read().splitlines() # 讀取第一行
return str(lines[0])
# 點(diǎn)贊
def like_articleId(userId,articleId):#傳遞文章id
requestUrl='https://blog.csdn.net//phoenix/web/v1/article/like'
refererUrl="https://blog.csdn.net/{userId}/article/details/{articleId}"
refererUrl.format(userId=userId,articleId=articleId)
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36",
"cookie": readTxtFile(),
"origin": "https://blog.csdn.net",
"referer": refererUrl
}
data={
'articleId':articleId
}
resp=requests.post(requestUrl,headers=headers,data=data)
print(resp)
print(resp.json())
if __name__ == '__main__':
like_articleId('qq_38870145','131350469')
運(yùn)行結(jié)果:
點(diǎn)贊成功:
結(jié)束
本文分享python的requests使用到這結(jié)束!文章來源:http://www.zghlxwxcb.cn/news/detail-516105.html
?? 點(diǎn)贊,是我創(chuàng)作的動(dòng)力!
?? 收藏,是我努力的方向!
?? 評(píng)論,是我進(jìn)步的財(cái)富!
?? 感謝你的閱讀!文章來源地址http://www.zghlxwxcb.cn/news/detail-516105.html
到了這里,關(guān)于python爬蟲_requests入門指引的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!