import requests from bs4 import BeautifulSoup import re payload = "" headers = { "Accept": "*/*", "Accept-Encoding": "gzip, deflate, br", "User-Agent": "PostmanRuntime-ApipostRuntime/1.1.0", "Connection": "keep-alive" } for i in range(1,
时间: 2025-07-01 11:05:40 浏览: 4
使用 Python 的 `requests` 和 `BeautifulSoup` 库可以高效地发送 HTTP 请求并解析响应内容,是构建网络爬虫的常用方式。以下是详细的实现方法。
### 发送 HTTP 请求
`requests` 是一个用于发送 HTTP 请求的强大库,能够轻松处理 GET、POST 等常见请求方式,并自动管理参数编码、请求头设置和响应处理 [^2]。
#### 使用 `requests.get()` 获取网页内容
GET 请求是最常用的获取网页内容的方法。以下代码展示了如何使用 `requests.get()` 方法访问百度首页:
```python
import requests
response = requests.get("https://www.baidu.com")
print(type(response)) # <class 'requests.models.Response'>
```
该方法返回一个 `Response` 对象,其中包含了服务器返回的所有数据 [^3]。
#### 添加请求头和参数
在实际爬取过程中,有些网站会检查请求头中的 `User-Agent` 字段以判断是否为浏览器访问。可以通过设置 `headers` 模拟浏览器行为:
```python
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36"
}
params = {"query": "example"}
response = requests.get("https://www.example.com/search", headers=headers, params=params)
```
#### 检查响应状态码
确保请求成功的一种方式是检查响应的状态码,例如 `200` 表示成功:
```python
if response.status_code == 200:
html_content = response.text
else:
print(f"请求失败,状态码:{response.status_code}")
```
### 解析 HTML 内容
获取到网页的 HTML 内容后,需要使用 `BeautifulSoup` 来提取所需的数据。它支持多种解析器,最常用的是 `html.parser`。
#### 使用 `BeautifulSoup` 解析 HTML
以下代码展示了如何解析猫眼电影榜单页面中的电影名称和链接:
```python
from bs4 import BeautifulSoup
def bs4_parser(html):
all_value = []
value = {}
soup = BeautifulSoup(html, 'html.parser')
# 获取每一个电影条目
all_div_item = soup.find_all('div', attrs={'class': 'movie-item-info'})
for r in all_div_item:
title = r.find_all(name="p", attrs={"class": "name"})[0].string
movie_url = r.find_all('p', attrs={'class': 'name'})[0].a['href']
value['title'] = title
value['movie_url'] = movie_url
all_value.append(value)
value = {}
return all_value
# 示例调用
url = 'http://maoyan.com/board/4'
response = requests.get(url)
if response.status_code == 200:
html = response.content.decode("utf8", "ignore").encode("gbk", "ignore")
movies = bs4_parser(html)
print(movies)
```
此代码首先通过 `requests.get()` 获取网页内容,然后使用 `BeautifulSoup` 解析 HTML 并提取指定类名下的电影信息 [^4]。
### 完整流程示例
结合上述步骤,一个完整的爬虫程序通常包括以下几个环节:
1. 构建请求 URL;
2. 设置请求头(可选);
3. 发送请求并获取响应;
4. 检查响应状态码;
5. 使用 `BeautifulSoup` 解析 HTML;
6. 提取所需数据并进行后续处理。
---
阅读全文
相关推荐


















