使用Requests库是Python中最为常用的网络爬虫方式之一。这个库非常易用,支持HTTP/HTTPS/FTP协议的请求和响应处理,同时还能够自定义请求头、cookie等参数,方便地实现网站的爬取。下面是使用Requests库来进行爬虫的完整攻略:
安装Requests库
使用pip命令安装Requests库:
pip install requests
发送HTTP请求
使用Requests库发送HTTP请求的基本步骤如下:
- 导入Requests库:
import requests
- 发送请求并获取响应:
response = requests.get('http://www.example.com')
这里的get函数可以换成post、put、delete等HTTP方法,根据实际需求设置不同的参数。
- 处理响应:
print(response.status_code) # 响应状态码
print(response.text) # 响应文本
这里的响应状态码是一个整数,用来表示服务器对请求的处理结果,一般情况下200表示成功,404表示网页不存在,500表示服务器内部错误等;响应文本是一个字符串,包含了请求的结果。还可以使用response.json()来获得响应的JSON数据。
- 自定义请求参数:
url = 'http://www.example.com'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
cookies = {'name': 'value'}
params = {'key1': 'value1', 'key2': 'value2'}
response = requests.get(url, headers=headers, cookies=cookies, params=params)
这里headers参数用来设置请求头,cookies参数用于传递cookie信息,params参数用来设置查询字符串参数。
示例一:爬取百度首页
下面是一个简单的示例,展示如何使用Requests库来爬取百度首页:
import requests
url = 'https://www.baidu.com'
response = requests.get(url)
if response.status_code == 200:
print(response.text)
else:
print('爬取失败')
运行上述代码,就可以在控制台中输出百度首页的HTML代码。
示例二:爬取豆瓣电影Top250
下面是一个稍微复杂一些的示例,展示如何使用Requests库来爬取豆瓣电影Top250:
import requests
from bs4 import BeautifulSoup
url = 'https://movie.douban.com/top250'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
movies = []
for i in range(0, 250, 25):
params = {'start': i, 'filter': ''}
response = requests.get(url, headers=headers, params=params)
soup = BeautifulSoup(response.text, 'html.parser')
items = soup.select('div.info')
for item in items:
name = item.select_one('a').text
rating = item.select_one('span.rating_num').text
summary = item.select_one('span.inq').text if item.select_one('span.inq') else ''
movies.append({'name': name, 'rating': rating, 'summary': summary})
for movie in movies:
print(movie['name'], movie['rating'], movie['summary'])
运行上述代码,就可以爬取豆瓣电影Top250的详细信息,并打印在控制台中。这里使用了BeautifulSoup库对HTML文档进行解析,处理数据更为便捷。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Requests库来进行爬虫的方式 - Python技术站