爬虫request案例
时间: 2025-01-09 13:51:13 浏览: 4
### 使用 `requests` 库进行网页抓取的示例
#### 获取简单页面并打印状态码
当访问一个简单的URL时,可以使用如下代码来获取该网站的状态码:
```python
import requests
url = 'https://www.baidu.com'
req = requests.get(url)
print(req.status_code) # 打印HTTP响应状态码[^1]
```
这段代码展示了如何向百度首页发送GET请求,并输出服务器返回的状态码。
#### 发送带有自定义头部信息的请求
对于某些需要特定头文件才能正常加载的网页来说,则可以通过设置headers参数的方式来进行处理。下面的例子说明了怎样模拟浏览器行为以获取搜索结果页的内容:
```python
import requests
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
}
url = 'https://www.baidu.com/s?wd=python'
response = requests.get(url, headers=headers)
if response.status_code == 200:
print('Request successful')
else:
print(f'Request failed with status code {response.status_code}')
# 输出部分HTML源码作为验证
print(response.text[:100])
```
此段脚本不仅设置了用户代理(User-Agent),还指定了查询关键词为“python”的百度搜索引擎链接地址;如果请求成功则会显示前一百个字符的HTML文档内容[^2]。
#### 处理不同类型的响应数据
根据实际需求的不同,可能还需要解析来自网络资源的各种形式的数据。例如,要下载图片或其他多媒体文件时通常会选择`.content`属性而不是`.text`,因为前者能够保持原始二进制格式而不做任何转换。而对于JSON API接口而言,可以直接调用`.json()`方法得到Python字典对象以便后续操作。
```python
import requests
image_url = 'http://example.com/image.png' # 替换成真实的图片链接
r = requests.get(image_url)
with open('downloaded_image.png', 'wb') as f:
f.write(r.content) # 将二进制流写入本地磁盘保存成PNG图像文件[^3]
api_endpoint = 'http://jsonplaceholder.typicode.com/posts/1'
post_data = requests.get(api_endpoint).json()
print(post_data['title']) # 提取出文章标题字段并打印出来
```
上述实例分别演示了从远程位置读取图片以及通过RESTful服务提取结构化信息的方法。
阅读全文