Python爬虫requests模块之URL地址中的参数解读
作者:松鼠爱吃饼干
URL 地址参数
在使用requests模块发送请求之前,我们就要回顾之前学习到的url(统一资源定位符)。
在你拿到数据所在的url地址之后,发送网络请求时,请求的url中包含两种地址参数:查询参数和请求参数。
当我们爬一些特殊网址时,请求的url中会有一些特殊的参数,例如以下站点:
这种是URL的查询参数。前面是网址,?后面的二值性数据,就是查询参数。
URL的查询字符串(query string)传递某种数据。
如果你是手工构建URL,也就是通过拼接字符串构造的URL。
那么数据会以键/值对的形式置于URL中,跟在一个问号的后面。
例如:
https://image.so.com/i?q=%E9%A3%8E%E6%99%AF&src=srp
params关键字参数
Requests 允许你使用params关键字参数,以一个字典来提供这些参数。
举例来说,如果你想传递key1=value1和key2=value2到 httpbin.org/get,那么你可以使用如下代码:
import request params = {'q' : '风景' , 'src' : 'srp'} response = requests.get("https: //image.so.com/i",params=params)
通过打印输出该URL,你能看到URL已被正确编码:
print(response.url)
# 打印结果
https : / /image.so.com/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("http://httpbin.org/post",data=data)
当然Requests中的post方法只是相对于get方法多了一个data参数,其他参数都是类似的,例如我们也可以为post中的网址添加查询字符串params参数,也可以像get方法一样添加headers参数等。
到此这篇关于Python爬虫requests模块之URL地址中的参数解读的文章就介绍到这了,更多相关Python的requests模块URL地址参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!