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