feadper 断点续爬例子
时间: 2023-10-09 07:11:58 浏览: 54
好的,以下是一个基于 Python requests 库和 BeautifulSoup 库的简单的断点续爬例子:
```python
import requests
from bs4 import BeautifulSoup
# 设置基础 URL 和起始页码
base_url = 'https://example.com/page/'
start_page = 1
# 设置一个空列表来存储所有爬取到的数据
data_list = []
# 开始循环爬取每一页的数据
for page in range(start_page, 100):
# 构造当前页的完整 URL
url = base_url + str(page)
# 设置请求头部,模拟浏览器访问
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'
}
# 发送 HTTP GET 请求,获取页面内容
response = requests.get(url, headers=headers)
# 判断响应状态码是否为 200
if response.status_code == 200:
# 解析页面内容,获取需要的数据
soup = BeautifulSoup(response.content, 'html.parser')
data = soup.find_all('div', {'class': 'data'})
# 将当前页爬取到的数据添加到总数据列表中
data_list.extend(data)
# 输出提示信息
print('Successfully crawled page', page)
# 等待一段时间,避免爬取过快被服务器封禁 IP
time.sleep(2)
else:
# 如果响应状态码不为 200,说明请求失败,需要终止爬虫
print('Failed to crawl page', page)
break
# 将爬取到的所有数据保存到文件中
with open('data.txt', 'w') as f:
for data in data_list:
f.write(str(data) + '\n')
```
上述代码中,我们首先设置了基础 URL 和起始页码,然后循环爬取每一页的数据。在每次爬取前,我们先构造当前页的完整 URL,然后发送 HTTP GET 请求获取页面内容。如果响应状态码为 200,说明请求成功,我们就解析页面内容,提取需要的数据,并将其添加到总数据列表中。如果响应状态码不为 200,说明请求失败,我们就需要终止爬虫。在每次爬取后,我们还添加了一个等待时间,避免爬取过快被服务器封禁 IP。最后,我们将爬取到的所有数据保存到文件中。如果需要断点续爬,只需要保存当前已爬取的页码,然后在下次启动爬虫时从该页码开始即可。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)