8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何修改 Scrapy Spider 以使用规则和 LinkExtractor 提取产品链接?

Daniel Benedí 2月前

26 0

我正在开发一个 Scrapy 项目,并有一个自定义蜘蛛定义如下:class JosephCrawlSpider(Spider): parse_spider = JosephParseSpider() def start_requests(self): for url in

我正在开发一个 Scrapy 项目,并有一个自定义蜘蛛定义如下:


class JosephCrawlSpider(Spider):
    parse_spider = JosephParseSpider()

    def start_requests(self):
        for url in self.start_urls:
            category = self.extract_category_from_url(url)
            yield Request(
                url, callback=self.parse, cookies=self.cookies,
                meta={'category': category}
            )

    def parse(self, response):
        product_links = response.css('.product-name a.name-link::attr(href)').getall()

        if not product_links:
            return

        category = response.meta.get('category', 'unknown')
        for link in product_links:
            yield response.follow(
                link, callback=self.parse_product, cookies=self.cookies,
                meta={'category': category}
            )

        start = int(response.url.split('start=')[-1].split('&')[0])
        next_start = start + 12

        next_page = (
            f"https://www.joseph-fashion.com/en-gb/womens/"
            f"?start={next_start}&sz=12&format=page-element&rowNumber=4"
            f"&currentView=model_view"
        )
        yield Request(
            url=next_page, callback=self.parse, cookies=self.cookies,
            meta={'category': category}
        )

    def parse_product(self, response):
        response.meta['raw_product'] = response
        yield from self.parse_item(response)

    def parse_item(self, response):
        return self.parse_spider.parse(response)

    def extract_category_from_url(self, url):
        parts = url.split('/')
        try:
            start_index = parts.index("womens")
            return parts[start_index:start_index + 3]
        except ValueError:
            return []


我想重构此爬虫程序以使用 Scrapy Rule LinkExtractor 处理产品链接和分页的提取。我该如何修改爬虫程序以利用这些类?

我特别感兴趣的是如何设置 Rule 提取产品链接和处理 JosephCrawlSpider 课堂上的分页。

如有任何关于如何整合的指导或示例 Rule LinkExtractor 我们将不胜感激!

帖子版权声明 1、本帖标题:如何修改 Scrapy Spider 以使用规则和 LinkExtractor 提取产品链接?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Daniel Benedí在本站《python》版块原创发布, 转载请注明出处!
最新回复 (0)
返回
作者最近主题: