随着互联网的快速发展,人们获取信息的方式也在不断变化。爬虫技术(Web Crawling)成为了一种重要的信息获取方式,它可以自动化地访问互联网上的数据并将这些数据保存下来,为数据分析与挖掘提供了很大的便利。而 Requests 是 Python 中最常用的 HTTP 请求库,使用简单方便,本文将详细介绍如何使用 Requests 库来进行网页数据爬取。
一、Requests 库的安装
在使用 Requests 库进行网页数据爬取之前,我们需要先安装它。在命令行输入以下命令进行安装:
pip install requests
二、Requests 库的基础使用
1. 发送 HTTP GET 请求
Requests 库的核心就是 requests 模块,在使用前我们需要先将其导入:
import requests
使用 requests.get() 方法发送一个 HTTP GET 请求:
response = requests.get('https://www.baidu.com')
print(response.text)
我们先通过 requests.get() 方法来发送一个 GET 请求,然后将响应保存在 response 变量中。最后通过 response.text 属性来获取返回的 HTML 页面内容,并打印出来。
2. 发送 HTTP POST 请求
使用 requests.post() 方法发送一个 HTTP POST 请求:
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('http://httpbin.org/post', data=payload)
print(response.json())
在上述代码中,我们首先定义了一个 payload 字典,用于存放 POST 请求中传递的参数。然后使用 requests.post() 方法发送一个 POST 请求,将参数传递给 data 参数。最后通过 response.json() 方法来获取服务器返回的 JSON 格式数据,并将其打印出来。
3. 设置请求头信息
在实际的网页爬取过程中,为了避免被网站识别出是爬虫程序而受到限制,我们需要对请求头信息进行设置。通过设置 User-Agent 伪装成常见浏览器进行访问可以有效降低被拦截的概率。
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Firefox/60.0'}
response = requests.get('https://www.zhihu.com', headers=headers)
print(response.text)
在上述代码中,我们定义了一个 headers 字典,设置了 User-Agent 字段为 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Firefox/60.0。最后通过 requests.get() 方法以及 headers 参数进行发送。
三、Requests 库的高级使用
1. SSL 证书验证
在使用 Requests 库进行网页爬取的过程中,有些网站会使用 SSL 证书进行加密,如果不进行 SSL 证书验证,则会遇到 SSL 错误。通过设置 verify 参数可以进行 SSL 证书验证。当 verify 设置为 True 时,Requests 会验证 SSL 证书;当 verify 设置为 False 时,不会进行验证;当 verify 设置为 CA 证书时,Requests 会使用该证书来验证 SSL 证书。
response = requests.get('https://some-website.com', verify=True)
2. 代理设置
在使用 Requests 库进行网页爬取的过程中,有些网站会对同一个 IP 地址频繁访问进行限制,因此需要通过设置代理来绕过这个限制。通过设置 proxies 参数可以设置代理。proxies 参数可以是一个字典类型或者一个字符串类型,具体格式可以参考 Requests 库官方文档。
proxies = {
'http': 'http://127.0.0.1:1080',
'https': 'http://127.0.0.1:1080',
}
response = requests.get('https://some-website.com', proxies=proxies)
3. Cookie 设置
在爬取某些需要登录认证的网站时,我们需要手动设置 Cookie,使爬虫能够模拟登录状态。通过设置 cookies 参数可以设置 Cookie。
cookies = {
'cookie_key1': 'cookie_value1',
'cookie_key2': 'cookie_value2',
}
response = requests.get('https://some-website.com', cookies=cookies)
4. 文件上传
除了可以获取网页内容外,Requests 库还支持上传文件并获取服务器返回的结果。使用 requests.post() 方法进行上传文件:
url = 'http://httpbin.org/post'
files = {'file': open('test.jpg', 'rb')}
response = requests.post(url, files=files)
print(response.json())
在上述代码中,我们首先定义了一个 files 字典,将要上传的文件以二进制方式打开并进行传递。最后通过 requests.post() 进行传递,将服务器返回的结果打印出来。
总结
本文介绍了 Requests 库的基础使用方法,包括发送 HTTP GET 请求、POST 请求、设置请求头信息,以及介绍了 Requests 库的高级使用方法,包括 SSL 证书验证、代理设置、Cookie 设置、上传文件等。通过使用 Requests 库,我们可以方便地实现网页数据的爬取,同时也需要遵守爬虫道德规范,尊重网站的合法权益。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/198295.html