实战项目一:垂直电商全站抓取

📂 所属阶段:第四阶段 — 实战演练(项目开发篇)


1. 项目架构

电商网站
├── 分类页面(多级分类)
├── 商品列表页(翻页)
└── 商品详情页(数据提取)

2. 爬虫实现

import scrapy

class EcommerceSpider(scrapy.Spider):
    name = 'ecommerce'
    start_urls = ['http://example.com/categories']
    
    def parse(self, response):
        # 提取分类链接
        for category in response.css('a.category'):
            url = category.css('::attr(href)').get()
            yield scrapy.Request(url, callback=self.parse_category)
    
    def parse_category(self, response):
        # 提取商品链接
        for product in response.css('div.product'):
            url = product.css('a::attr(href)').get()
            yield scrapy.Request(url, callback=self.parse_product)
        
        # 翻页
        next_page = response.css('a.next::attr(href)').get()
        if next_page:
            yield scrapy.Request(
                response.urljoin(next_page),
                callback=self.parse_category
            )
    
    def parse_product(self, response):
        yield {
            'title': response.css('h1::text').get(),
            'price': response.css('span.price::text').get(),
            'description': response.css('div.description::text').get(),
        }

3. 小结

电商爬虫关键点:

1. 多级分类:递归爬取
2. 翻页:循环处理
3. 数据提取:精准选择器
4. 去重:避免重复爬取

💡 记住:电商爬虫是最常见的应用。掌握它,你就掌握了 80% 的爬虫场景。


🔗 扩展阅读