接口测试Request 库

import requests

#

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

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

# print(resp.status_code)  # 查看状态码200为成功,404为失败

# print(resp.text)  # 打印HTML内容,出现乱码

# # 从HTTP的header 猜测的响应内容的编码方式

# print(resp.encoding)  # 结果:ISO-8859-1

# # 从HTTP的内容中 分析出响应内容的编码方式

# print(resp.apparent_encoding)# 结果 :utf-8

# resp.encoding="utf-8"  # 改变编码方式

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

# # resp.encoding  如果header中不存在charset,则默认编码为 ISO-8859-1(不能识别中文)

# # resp.apparent_encoding  根据网页内容分析出的编码方式(备选)

#### 爬取网页的通用代码框架####

def getHTMLText(url):

try:

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

r.raise_for_status()# 如果状态码不是200,引发HTTPError异常

        r.encoding=r.apparent_encoding

return r.text

except:

return "产生异常"

if __name__ =='__main__':

url="www.baidu.com"

    print(getHTMLText(url))# 产生异常



# 网络图片的爬取和存储

import requests

import os

# 网络图片链接的格式: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):# 判断当前根目录是否存在

        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字段,让代码模拟浏览器向亚马逊服务器提供http请求

# 网站对于网络爬虫的限制

# 第一种:通过robos协议,告知爬虫,那些东西可以访问,那些不能访问

# 第二种:通过判断对网站访问的HTTP头来查看本次访问是不是由于爬虫引起的,网站一般接收的是由浏览器引发的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'}# 浏览器身份标识

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])# 爬取字节范围

你可能感兴趣的:(接口测试Request 库)