Python爬⾍requests教学(⼆):URL地址中的参数
在使⽤requests模块发送请求之前,我们就要回顾之前学习到的url(统⼀资源定位符)。
在你拿到数据所在的url地址之后,发送⽹络请求时,请求的url中包含两种地址参数:查询参数和请求参数。
Python爬⾍、数据分析、⽹站开发等案例教程视频免费在线观看
space.bilibili/523606542
查询参数
当我们爬⼀些特殊⽹址时,请求的url中会有⼀些特殊的参数,例如以下站点:
这种是URL的查询参数。前⾯是⽹址,?后⾯的⼆值性数据,就是查询参数。
URL的查询字符串(query string)传递某种数据。如果你是⼿⼯构建URL,也就是通过拼接字符串构造的URL。那么数据会以键/值对的形式置于URL中,跟在⼀个问号的后⾯。
例如:
image.so/i?q=%E9%A3%8E%E6%99%AF&src=srp
params关键字参数
Requests 允许你使⽤params关键字参数,以⼀个字典来提供这些参数。
举例来说,如果你想传递key1=value1和key2=value2到 /get,那么你可以使⽤如下代码:
import request
url编码处理params = {'q' : '风景' , 'src' : 'srp'}
response = ("https: //image.so/i",params=params)
通过打印输出该URL,你能看到URL已被正确编码:
print(response.url)
# 打印结果
https : / /image.so/i?q=%E9%A3%8E%E6%99%AF&src=srp
注意
在url地址中默认是不⽀持中⽂字符的,所以在请求中会把中⽂字符转化成url编码形式
同样的查询参数可以在浏览器抓包⼯具中到,位于Headers栏⽬下的Query String Parameters中,如下图所⽰:
请求参数
请求参数和查询参数有本质的区别。请求参数⼀般是在发送post请求,向服务器提交表单数据请求的时候携带的参数。
注意: url地址中不会显⽰请求参数,只会显⽰查询参数。
请求参数在浏览器抓包⼯具中,位于Headers栏⽬下的Form Data中如下⾯数据抓包所⽰:
data关键字参数
在requests模块中发送POST请求也是⽐较容易的操作,要实现这个,只需简单地传递⼀个字典给data参数。你的数据字典在发出请求时会⾃动编码为表单形式:
data = {'key1' : 'value1','key2 ' : 'value2 '}
response = requests.post("/post",data=data)
当然Requests中的post⽅法只是相对于get⽅法多了⼀个data参数,其他参数都是类似的,例如我们也可以为post中的⽹址添加查询字符串params参数,也可以像get⽅法⼀样添加headers参数等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论