You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Python爬虫代码获取books.toscrape.com全50页书籍名称及链接

调整后可直接运行的完整代码
from bs4 import BeautifulSoup
import requests

# 基础路径配置
base_catalogue_url = "http://books.toscrape.com/catalogue/"

# 遍历50个分页
for page_num in range(1, 51):
    # 构造当前分页的访问链接
    current_page_url = f"{base_catalogue_url}page-{page_num}.html"
    # 发起请求获取页面内容
    resp = requests.get(current_page_url)
    resp.encoding = resp.apparent_encoding
    # 解析页面结构
    page_soup = BeautifulSoup(resp.text, "html.parser")
    # 提取当前页所有书籍条目
    bookshelf = page_soup.find_all("li", {"class": "col-xs-6 col-sm-4 col-md-3 col-lg-3"})
    
    # 遍历输出当前页所有书籍信息
    for book in bookshelf:
        book_title = book.h3.a["title"]
        book_relative_url = book.h3.a["href"]
        book_full_url = base_catalogue_url + book_relative_url
        print(f"{book_title}-{book_full_url}")
核心调整点说明
  • 移除了冗余的urllib依赖,统一使用requests发起请求,代码逻辑更简洁统一
  • 修正了分页遍历的范围:range(1, 51)刚好对应站点page-1.html到page-50.html的规则,避免请求不存在的page-0.html
  • 将原有的单页解析、数据提取逻辑移入分页循环内,每页请求完成后自动执行解析提取
  • 修正了书籍链接拼接规则,适配分页页面对应的相对路径规则,输出的链接可直接访问
  • 增加了编码自动识别配置,避免特殊书名出现乱码问题

内容的提问来源于stack exchange,提问作者user9142877

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:06:04