python康复日记-request库的使用,爬虫自动化测试
一,request的简单应用
#1请求地址
URL='https://example.com/login'
#2参数表单
form_data = {
'username': 'admin',
'password': 'secret'
}
#3返回的响应对象response
response = requests.post(
URL,data=form_data,timeout=5
)
#4处理返回结果,这里直接打印返回网页的正文。通常需要json转化,和encode编码下
print(reponse.content)
1,请求头需要设置,有些网站会限制访问
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
'Referer': 'https://www.99csw.com/',
'Accept-Language': 'zh-CN,zh;q=0.9'
}
try:
# 发送HTTP请求
response = requests.get(url, headers=headers, timeout=15)
2,response的属性
发送request请求后,返回的reponse对象里有我们要的信息,需要处理。常用的3个标粗了。
属性/方法 | 类型/返回类型 | 说明 |
---|---|---|
status_code | int | HTTP 状态码(如 200、404、500) |
headers | CaseInsensitiveDict | 响应头字典(不区分大小写) |
text | str | 解码后的文本内容(自动根据 encoding 解码) |
content | bytes | 原始字节内容(未解码的二进制数据) |
json() | dict /list | 解析 JSON 响应内容(非 JSON 内容会抛异常) |
url | str | 最终请求的 URL(含重定向后的地址) |
encoding | str | 响应内容的编码格式(可手动修改) |
apparent_encoding | str | 通过内容分析出的编码格式(自动检测) |
raw | HTTPResponse | 原始响应流对象(需配合 stream=True 使用) |
cookies | RequestsCookieJar | 服务器返回的 Cookies |
elapsed | datetime.timedelta | 请求耗时(从发送到响应完成的时间) |
history | list[Response] | 重定向历史记录列表 |
reason | str | 状态码的文本描述(如 200 → "OK",404 → "Not Found") |
request | PreparedRequest | 关联的请求对象(含请求头、方法、URL 等信息) |
rep = reponse.content.decode('utf8'),content获取的正文是二进制,注意编码。
正文处理通常需要 json格式化 和 re正则模块 的匹配。
#对返回content正文中,span标签的获取,标题内容获取
pattern1 = re.compile(r'<span class="title">([^&]*?)</span>')
titles = pattern1.findall(resp.text)