requests发送请求
发送带有header的请求
一,为什么要发送带有header的请求
- 有些URL,在请求时不同的浏览器版本得到的响应内容不同,所以此时我们就需要修改请求头或者添加请求头信息
此时就用到了添加header
二,获取请求头和响应头
import requests
r = requests.get("https://www.baidu.com")
print(r.headers) # 响应头
print(r.request.headers) # 请求头
三,给请求添加header操作流程
如果你想为请求添加 HTTP 头部,只要简单地传递一个 dict 给 headers 参数就可以了
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
requests.get(url, headers=headers)
发送带有url参数的请求
一,什么是带有url参数的请求
我们在使用百度搜索的时候经常发现url地址中会有一个 ?,那么该问号后边的就是请求参数,又叫做查询字符串
如果想要做到自动搜索,就应该让发送出去的URL携带参数
二,请求参数
例1:
http://www.webkaka.com/tutorial/server/2015/021013/
例2:
https://www.baidu.com/s?wd=python&a=c
例1中没有请求参数!例2中?后边的就是请求参数
三,发送带有查询参数的url流程
- 1,请求参数的形式:字典
kw = {"wd" : "长城"}
- 2,请求参数的用法
r = requests.get(url, params=kw)
可以用r.url查看请求的url
注意
在url地址中, 很多参数是没有用的,比如百度搜索的url地址,其中参数只有一个字段有用,其他的都可以删除 如何确定那些请求参数有用或者没用:挨个尝试! 对应的,在后续的爬虫中,遇到到很多参数的url地址,都可以尝试删除参数
使用requests发送POST请求
一,发送POST请求
HTTP请求中,GET与POST是使用最为频繁的一种
一般情况下:
- GET,用来获取数据
- POST,用来提交数据
requests模块中能发送很多中请求,例如GET、POST、PUT、DELETE等
发送POST请求的方式如下:
data = {
"keyword": "hello"
}
r = requests.post("目标URL", data=data)
这里需要注意:
- 如果给POST请求添加header、或者是查询字符串都是可以的,方式与GET时一样
文章仅供学习参考