如果想要一个使用Python requests库的爬虫程序。首先,我需要确认他们的具体需求是什么。可能他们需要基本的爬虫示例,或者有特定的网站要抓取,但用户没有提到具体网站,所以最好提供一个通用的例子。
接下来,我应该考虑requests库的基本用法。记得导入requests库,然后使用get方法获取网页内容。状态码检查很重要,比如200表示成功,其他情况可能需要处理异常或错误。

然后,用户可能需要解析HTML内容,这时候通常会用到BeautifulSoup或者lxml库。但用户只提到了requests,所以可能需要额外提醒他们安装解析库。在示例代码中,我应该包含这部分,并展示如何提取数据,比如找所有的链接。
另外,还要注意设置请求头,模拟浏览器访问,避免被网站拒绝。比如加入User-Agent,这样看起来更像普通浏览器,而不是爬虫。
还可能要考虑异常处理,比如连接错误、超时等,使用try-except块来捕获异常,增强程序的健壮性。超时设置也是必要的,防止长时间等待。
以下是一个使用 Python requests 库的基础爬虫程序示例,包含基本功能和注释说明:
python
import requests
from bs4 import BeautifulSoup # 用于解析HTML
# 设置请求头模拟浏览器访问
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
def simple_crawler(url):
try:
# 发送GET请求
response = requests.get(url, headers=headers, timeout=10)
# 检查响应状态码
if response.status_code == 200:
print("成功获取网页内容")
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(response.text, 'html.parser')
# 示例:提取所有链接
links = soup.find_all('a')
for link in links:
href = link.get('href')
print(f"找到链接: {href}")
# 示例:提取网页标题
title = soup.title.string
print(f"网页标题: {title}")
# 可以在这里添加其他数据处理逻辑
else:
print(f"请求失败,状态码: {response.status_code}")
except requests.exceptions.RequestException as e:
print(f"请求发生异常: {e}")
except Exception as e:
print(f"发生其他异常: {e}")
if __name__ == "__main__":
target_url = "https://example.com" # 替换为目标网址
simple_crawler(target_url)
关键要素说明:
-
请求头设置:通过 headers 参数添加 User-Agent 模拟浏览器访问
-
异常处理:
- 网络请求异常(超时、连接失败等)
- 通用异常捕获
-
响应验证:
- 检查 status_code 是否为 200
- 使用 response.text 获取网页内容
-
HTML解析:
- 使用 BeautifulSoup 解析库
- 示例提取链接和标题
-
超时设置:timeout=10 秒
进阶功能建议:
- 添加参数处理:
csharp
params = {'key': 'value'}
response = requests.get(url, params=params)
- 处理 Cookies:
ini
session = requests.Session()
session.get(login_url) # 保持会话
- 代理设置:
rust
proxies = {
'http': 'http://10.10.1.10:3128',
'https': 'http://10.10.1.10:1080'
}
requests.get(url, proxies=proxies)
- 内容类型处理:
python
# 处理JSON响应
json_data = response.json()
# 处理二进制内容(如图片)
with open('image.jpg', 'wb') as f:
f.write(response.content)
重要注意事项:
-
遵守目标网站的 robots.txt 规则
-
尊重网站版权和隐私政策
-
添加适当的请求间隔(建议 2-5 秒)
-
检查网站是否支持爬虫
-
处理反爬机制(需要时可添加)
- 随机User-Agent
- IP轮换
- 验证码处理
请根据实际需求调整代码,并确保遵守相关法律法规和网站的使用条款。