Python爬虫之request模块深入讲解
1. 前言
在使用Python爬虫进行网络数据获取时,使用requests
模块非常方便快捷。requests
模块封装了常见的HTTP请求方法,可以方便地进行GET和POST请求,可以自动处理Cookie、重定向、代理等功能并提供了优雅的API。
2. 安装requests模块
使用pip
命令进行安装:
pip install requests
3. 发起HTTP请求
3.1 发送GET请求
使用requests.get()
方法,可以简单地发起GET请求。例如,我们可以获取百度首页:
import requests
response = requests.get('https://www.baidu.com')
print(response.status_code)
print(response.text)
response.status_code
输出为200,表示请求成功;response.text
输出为百度首页的HTML源码。
3.2 发送带参数的GET请求
有些API需要我们发送带参数的GET请求,可以使用params
参数指定请求参数。例如:
import requests
response = requests.get('https://www.baidu.com/s', params={'wd': 'Python'})
print(response.status_code)
print(response.text)
发送了一个带有wd=Python
参数的GET请求,返回的响应内容为搜索Python的结果页面。
3.3 发送POST请求
使用requests.post()
方法,可以发送POST请求。例如,我们可以使用POST方法登录GitHub:
import requests
url = 'https://github.com/session'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
'Referer': 'https://github.com/login',
'Host': 'github.com'
}
data = {'login': 'your_account', 'password': 'your_password'}
response = requests.post(url, headers=headers, data=data)
print(response.status_code)
print(response.text)
拼接url
、设置请求头headers
、设置请求参数data
,然后发送POST请求即可。
4. 进阶功能
4.1 session维持会话
在多次请求中,需要保持某些状态,比如登陆状态或者某些特定的请求头等,这时可以使用session
来保持会话状态:
import requests
session = requests.Session()
session.headers.update({
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
'Referer': 'https://github.com/login',
'Host': 'github.com'
})
data = {'login': 'your_account', 'password': 'your_password'}
session.post('https://github.com/session', data=data)
通过创建Session
对象,然后使用这个Session
对象来发送请求,就可以在多次请求中保持会话的状态。
4.2 代理设置
如果需要使用代理进行请求,设置proxies
即可:
import requests
proxies = {
'https': 'https://127.0.0.1:8899',
'http': 'http://127.0.0.1:8899'
}
response = requests.get('https://www.baidu.com', proxies=proxies)
代理的格式为{'http': 'http://127.0.0.1:8888', 'https': 'https://127.0.0.1:8888'}
。
5. 总结
本文简单介绍了requests
模块的基本用法和常用进阶功能。在使用Python爬虫时,需要结合实际情况选用不同的请求方式和功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬虫之request模块深入讲解 - Python技术站