python 爬虫翻页
时间: 2024-08-03 10:01:21 浏览: 103
在Python中爬取网页并处理分页通常涉及到两个关键步骤:获取单页内容和处理翻页链接。这里是一个简单的例子,使用`requests`库获取HTML内容,然后使用如`BeautifulSoup`解析页面,寻找翻页元素。
1. **获取单页内容**:
```python
import requests
from bs4 import BeautifulSoup
def fetch_page(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
return soup
```
2. **处理翻页链接**:
- 首先定位到分页元素(比如下一页按钮),这通常是通过CSS选择器、XPath或其他网页结构分析工具完成的。
- 获取每个链接的URL:
```python
def find_next_page_link(soup):
next_button = soup.select_one('.next-page') # 这里假设CSS选择器'.next-page'
if next_button:
return next_button['href']
else:
return None
```
3. **递归爬取**:
使用递归来处理每一页,直到找不到下一个链接或达到预设的最大深度:
```python
def crawl_pages(start_url, max_depth=5):
visited = set()
queue = [(start_url, 0)]
while queue:
url, depth = queue.pop(0)
if url in visited:
continue
visited.add(url)
soup = fetch_page(url)
yield process_current_page(soup) # 对当前页面进行处理
next_page_url = find_next_page_link(soup)
if next_page_url and depth < max_depth:
queue.append((next_page_url, depth + 1))
```
4. **完整示例**:
```python
for page_content in crawl_pages('初始首页URL', max_depth=10): # 调用函数,并设置最大爬取深度
# 对page_content进行进一步的解析和操作
```
阅读全文