接口測試Request 庫

import requests

#

# #### request庫的get()方法####

# resp = requests.get("https://www.baidu.com")

# print(resp.status_code)? # 查看狀態(tài)碼200為成功,404為失敗

# print(resp.text)? # 打印HTML內(nèi)容,出現(xiàn)亂碼

# # 從HTTP的header 猜測的響應(yīng)內(nèi)容的編碼方式

# print(resp.encoding)? # 結(jié)果:ISO-8859-1

# # 從HTTP的內(nèi)容中 分析出響應(yīng)內(nèi)容的編碼方式

# print(resp.apparent_encoding)# 結(jié)果 :utf-8

# resp.encoding="utf-8"? # 改變編碼方式

# print(resp.text)? # 格式正常

# # resp.encoding? 如果header中不存在charset,則默認(rèn)編碼為 ISO-8859-1(不能識(shí)別中文)

# # resp.apparent_encoding? 根據(jù)網(wǎng)頁內(nèi)容分析出的編碼方式(備選)

#### 爬取網(wǎng)頁的通用代碼框架####

def getHTMLText(url):

try:

r = requests.get(url,timeout=30)

r.raise_for_status()# 如果狀態(tài)碼不是200,引發(fā)HTTPError異常

? ? ? ? r.encoding=r.apparent_encoding

return r.text

except:

return "產(chǎn)生異常"

if __name__ =='__main__':

url="www.baidu.com"

? ? print(getHTMLText(url))# 產(chǎn)生異常



# 網(wǎng)絡(luò)圖片的爬取和存儲(chǔ)

import requests

import os

# 網(wǎng)絡(luò)圖片鏈接的格式:http://www.example.com/picture.jpg

url ="https://pic3.zhimg.com/80/v2-5b2d8d4f3109c2cb346f04cae6a5870e_1440w.jpg"

root ="D:/"

path =root+url.split("/")[-1]# 使用圖片原來的名字

try:

if not os.path.exists(root):# 判斷當(dāng)前根目錄是否存在

? ? ? ? os.mkdir(root)

if not os.path.exists(path):# 判斷文件是否存在

? ? ? ? r=requests.get(url)

with open(path,'wb')as p:

p.write(r.content)

p.close()

print("文件保存成功")

else:

print("文件已存在")

except:

print("爬取失敗")



import requests

# 亞馬遜商品頁面的爬取

# 通過headers字段,讓代碼模擬瀏覽器向亞馬遜服務(wù)器提供http請求

# 網(wǎng)站對于網(wǎng)絡(luò)爬蟲的限制

# 第一種:通過robos協(xié)議,告知爬蟲,那些東西可以訪問,那些不能訪問

# 第二種:通過判斷對網(wǎng)站訪問的HTTP頭來查看本次訪問是不是由于爬蟲引起的,網(wǎng)站一般接收的是由瀏覽器引發(fā)的http請求,

url = ("https://www.amazon.cn/dp/B00T2NGQW2/ref=s9_acsd_ri_bw_c2_x_0_i?pf_rd_m=A1U5RCOVU0NYF2&pf_rd_s=merchandised-search-3&pf_rd_r=RJSE6X6MYAPAP9JEM0T3&pf_rd_t=101&pf_rd_p=4602c871-ec9e-4679-90ba-1ddbdb46b754&pf_rd_i=144154071")

r = requests.get(url)

print(r.status_code)# 503

print(r.encoding)

r.encoding = r.apparent_encoding

# print(r.text)

print(r.request.headers)

kv={'User-Agent':'Mozilla/5.0'}# 瀏覽器身份標(biāo)識(shí)

url = ("https://www.amazon.cn/dp/B00T2NGQW2/ref=s9_acsd_ri_bw_c2_x_0_i?pf_rd_m=A1U5RCOVU0NYF2&pf_rd_s=merchandised-search-3&pf_rd_r=RJSE6X6MYAPAP9JEM0T3&pf_rd_t=101&pf_rd_p=4602c871-ec9e-4679-90ba-1ddbdb46b754&pf_rd_i=144154071")

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

print(r.request.headers)

print(r.status_code)

print(r.text[100:300])# 爬取字節(jié)范圍

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容