PHP前端开发

python爬虫翻页怎么处理

百变鹏仔 4天前 #Python
文章标签 爬虫
Python爬虫翻页处理常见两种方法:手动翻页:简单易行,需手动指定每个页面URL;自动翻页:通过Scrapy或BeautifulSoup4库实现,提高效率,无需手动指定页码。

Python爬虫翻页处理

在使用Python爬虫抓取网页数据时,经常会遇到多页面的情况,需要对各个页面进行翻页处理。

方法一:手动翻页

import requestsfrom bs4 import BeautifulSoup# 设置要爬取的网址列表urls = ['https://example.com/page1', 'https://example.com/page2', 'https://example.com/page3']# 循环访问每个网址for url in urls:    # 发送HTTP请求,获取页面内容    response = requests.get(url)    # 解析HTML内容    soup = BeautifulSoup(response.text, 'html.parser')    # 提取数据    ...

方法二:使用库自动翻页

立即学习“Python免费学习笔记(深入)”;

Scrapy是一个流行的Python爬虫框架,提供了自动翻页功能。

import scrapyclass ExampleSpider(scrapy.Spider):    name = 'example'    start_urls = ['https://example.com/page1']    # 重写parse方法,处理自动翻页    def parse(self, response):        # 提取数据        ...        # 获取下一页的URL        next_page_url = response.css('a[rel="next"]::attr(href)').get()        # 如果存在下一页,则递归抓取        if next_page_url is not None:            yield scrapy.Request(next_page_url, callback=self.parse)

BeautifulSoup4也提供了一些翻页辅助方法。

from bs4 import BeautifulSoup# 获取当前页面的URLcurrent_url = 'https://example.com/page1'# 循环翻页,直到最后一页while True:    # 发送HTTP请求,获取页面内容    response = requests.get(current_url)    # 解析HTML内容    soup = BeautifulSoup(response.text, 'html.parser')    # 提取数据    ...    # 获取下一页的URL    next_page_url = soup.find('a', {'rel': 'next'})['href']    # 如果不存在下一页,则退出循环    if next_page_url is None:        break    # 更新当前页面的URL    current_url = next_page_url