Python爬虫 requests教学(二):URL地址中的参数

在使用requests模块发送请求之前,我们就要回顾之前学习到的url(统一资源定位符)。

在你拿到数据所在的url地址之后,发送网络请求时,请求的url中包含两种地址参数:查询参数请求参数

Python爬虫、数据分析、网站开发等案例教程视频免费在线观看

https://space.bilibili.com/523606542 

Python学习交流群:1039649593

查询参数

当我们爬一些特殊网址时,请求的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参数等。

猜你喜欢

转载自blog.csdn.net/m0_48405781/article/details/115176285