python爬虫学习requests中的模块请求参数之二

一.requests模块的请求参数

1 这是最后的解释


method: 请求方法  get  post
url: 请求的链接地址

反扒的三剑客
headers: (可选的) 构建请求头字段的关键字参数, 构建字典
cookies: (可选的) 通过这个关键字传递cookies字段信息, 构建字典
proxies: (可选的) ip代理的关键字参数, 构建字典

请求参数的三剑客
params: (可选的) 构建查询参数的关键字
data: (可选的) 构建请求参数的关键字
json: (可选的) 以 json 数据提交的请求参数关键字, 构建字典
    
timeout: (可选的) 设置响应时间, 单位/, 如果超过这个时间程序会报错 最大180秒
allow_redirects: (可选的) 是否允许重定向, 默认如果发生了重定向, 会自动重定向, 设置布尔值
verify: (可选的) 是否验证网站证书  ca证书  ssl证书, 默认为Ture, 默认会校验证书 返回警告

files: (可选的) 文件操作
stream: (可选的) 数据流数据, 是都是数据流数据, 实时更新的数据(直播,弹幕,股票)

二.json请求的关键字

1. 在有些情况下用post发送的请求的时候是会使用json参数来构建关键字的,例如地址:url=‘http://www.zfcg.sh.gov.cn/’



import requests
url = 'http://www.zfcg.sh.gov.cn/front/search/category'
json_data = {
    
    
    "utm": "sites_group_front.2ef5001f.0.0.07ec2550d86011edb93db70f086e4f9a",
    "categoryCode": "ZcyAnnouncement3012",
    "pageSize": '15',
    "pageNo": '1'
}
# json 主要是以json字符串提交的请求参数
response = requests.post(url=url, json=json_data)
print(response.json())

请添加图片描述

2.记住这个关键字是在 Request Payload 中查找的,如果没有就不用构建json的查询参数.

三.cookies 关键字的构建

1 在python中cookies关键字可以用三种方法来进行构建,

①.在请求头headers中一起构建

②.将cookies关键字单独构建成cookies字典的形式


# 单独构建cookies字典
# cookies = {'Cookie': 'REALTIME_TRANS_SWITCH=1; SOUND_SPD_SWITCH=1; HISTORY_SWITCH=1; FANYI_WORD_SWITCH=1; SOUND_PREFER_SWITCH=1; PSTM=1657895499; BIDUPSID=D26C29435949C22624426B7C5A1F52F3; ab_sr=1.0.1_MDJhNTY0OGI3NzhkNjMxNGE5ZWY3MzNiNGI3OGJiMjRmYjJlNGQ2NThkYjYyNzc5OTllMWEwZWFiMDM5MjBlODYwOWI4Y2M0Zjc5NWNkMGFjNmI5OGM2NDkwOTBmNjAxYzVjZTdiMTc3ZjkxMWQ4ZTM0OWNkYTA0MjA1ZDI4MjE5ZmIyMGJlYjM2MjY2NTBjM2EzNGI5NmIxMDEzYjJmOTFjM2FhNDliYWQ5Y2M5YjdlYWU0MWJhZTU2YzRiYmM3'}

③.将cookies关键字的每一个片段单独构建成键值对的形式


cookies = {
    
    
'BAIDUID': '963EC08DDD8CA5647A50D2ED99D0CCF2:SL=0:NR=10:FG=1',
'BAIDUID_BFESS': '963EC08DDD8CA5647A50D2ED99D0CCF2:SL=0:NR=10:FG=1',
'ZFY': 'fVb9op8tO3yhpq3TJlvkhdkE8iS3bLYoA53APCw5awg:C',
'1.0.1_MDJhNTY0OGI3NzhkNjMxNGE5ZWY3MzNiNGI3OGJiMjRmYjJlNGQ2NThkYjYyNzc5OTllMWEwZWFiMDM5MjBlODYwOWI4Y2M0Zjc5NWNkMGFjNmI5OGM2NDkwOTBmNjAxYzVjZTdiMTc3ZjkxMWQ4ZTM0OWNkYTA0MjA1ZDI4MjE5ZmIyMGJlYjM2MjY2NTBjM2EzNGI5NmIxMDEzYjJmOTFjM2FhNDliYWQ5Y2M5YjdlYWU0MWJhZTU2YzRiYmM3',
......
}

2.当使用第一种cookies没有数据返回就使用第二种,第二种也不行就使用第三种.

四.verify 的使用


import requests
requests.packages.urllib3.disable_warnings()  # 忽略关闭证书以后引发的警告

url = 'https://data.stats.gov.cn/'
# verify=False 发送请求的时候不校验证书
response = requests.post(url=url, verify=False)
print(response.text)

"""
requests.exceptions.SSLError:  网站没有证书引发的报错, 因为requests模块会默认校验证书
"""

1.在有的网站在访问的时候会校验网站的证书,没有网站证书就不会访问,所以这时候我们就会使用verify=False来禁止访问证书,从而访问网站.

五. timeout 的使用


import requests
url = 'https://github.com/'
# timeout=1  设置请求时间,单位秒, 超过时间就会报错, 可以通过异常捕获取处理
response = requests.post(url=url, timeout=0.1)
print(response.text)


1. 当我们访问一些网站的时候会有访问的特别慢的时候,这时候我们可以使用timeout来过滤这些网站.

六.allow_redirects的使用


import requests

url = 'http://github.com/'
# allow_redirects=False 阻止重定向
response = requests.post(url=url, allow_redirects=False)
print(response.status_code)
print(response.url)


1.这是一个是否允许重定向的参数.

七.还有两个基本就是用不上,如果有需要你们再自己找资料吧.

猜你喜欢

转载自blog.csdn.net/m0_74459049/article/details/130764201