← 返回 Day 128 正文

Day 128 · 练习与清单

Day 128 - Scrapy 框架 完成清单与练习

✅ 完成清单

📝 练习题

练习 1(基础)

写一个 Spider 抓取 books.toscrape.com 首页,只提取所有图书标题和价格,导出为 CSV(提示:-o books.csv 或 FEEDS 配置)。

练习 2(进阶)

给练习 1 加一个 Pipeline:只保留价格 > £50 的书,并把价格转成 float。统计最终保留了几本。

练习 3(进阶)

用 XPath 实现两件事: 1. 找到页面上所有 class 包含 price 的元素文本; 2. 找到"链接文字是 next"的超链接的 href(CSS 做不到的那种写法)。

练习 4(避坑)

下面这段 Pipeline 代码有什么 bug?会导致什么现象?

python
class MyPipeline:
    def process_item(self, item, spider):
        item["price"] = float(item["price"].replace("£", ""))
        # (没有 return)

练习 5(综合)

设计一个两级爬虫:列表页 http://books.toscrape.com/catalogue/category/books/travel_2/index.html 的每本书详情页,提取标题、描述、库存数量,并按 URL 去重后存为 JSON Lines 格式。(可参考 code/03,先自己写再看答案。)