Python爬虫——requests库的用法详解
什么是requests库?
requests是Python编程语言的第三方库,开发者可以使用该库对URL发起各种请求,如GET、POST、PUT、DELETE等请求。它支持HTTP/1.1和HTTP/2,同时支持异步协程操作。requests库还对HTTP请求和响应进行了封装,并提供了很多简单易用的方法,让开发者快捷高效地进行网络请求。
安装requests库
使用pip命令即可完成requests库的安装:
pip install requests
requests库的基本使用
发起GET请求
发送GET请求的过程非常简单。例如,如果要请求一个网页,只需要使用requests库中的get()方法即可:
import requests
response = requests.get('https://www.baidu.com/')
response对象中保存了服务器返回的所有信息,可以通过response对象来获取网页的内容、状态码等信息,例如:
# 获取网页内容
print(response.text)
# 获取状态码
print(response.status_code)
# 获取响应头部信息
print(response.headers)
发起POST请求
通过POST请求提交表单数据,可以模拟用户登录、搜索等操作,使用requests库的post()方法即可:
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=payload)
print(response.text)
这里的payload
是一个字典对象,包含了需要提交给网站的表单数据。
爬取动态网页
requests库无法爬取JavaScript动态生成的内容,但可以与其他库结合,如使用selenium模块爬取动态网页。下面是一个简单的例子,感兴趣的读者可以自行了解Selenium的使用。
from selenium import webdriver
import time
import requests
driver = webdriver.Chrome()
driver.get('https://www.taobao.com/')
time.sleep(10)
cookies = driver.get_cookies()
s = requests.Session()
for cookie in cookies:
s.cookies.set(cookie['name'], cookie['value'])
response = s.get('https://cart.taobao.com/cart.htm')
print(response.text)
以上例子演示了如何利用Selenium模块模拟浏览器动作,获取用户登录状态下的购物车列表。
总结
本文介绍了requests库的基本使用,以及如何结合其他库爬取动态网站。当然,requests库的功能远不止这些,更多的功能和选项可以查看官方文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬虫—requests库的用法详解 - Python技术站