scrapy 分页抓取后合并问题

scrapy学习有几个月了,普通scrapy和crawl都能够实现,现在碰到一个问题:
在使用scrapy爬取多分页后,如何把多分页内容合并写入到一个item[x]内?
我现在使用 yield Request 至 def art_url 来获取分页内容,用append把内容集合后,用 item['image_urls'] = self.art_urls 来接收结果,
但结果一直接收,每篇内容的分页的接收导致很多,请教一下,如何把每篇的分页内容合并写入一项itme?

刚学不到半年,代码凌乱,望包含,主要是想学习如何爬取小说站,把每一章都合并在一起,不要分页搞很多数据,和合适代码推荐下,研究学习,谢谢了
我的代码:

art_urls = []
rules = (
        Rule(LinkExtractor(allow='wenzhang/',restrict_xpaths=('//table[@id="dlNews"]')), callback='parse_item', follow=True),
    )
    def parse_item(self, response):
        print(response.url)
        item = SpiderItem()
        conn = Redis(host='127.0.0.1', port=6379)
        item['title'] = response.xpath('//h1/text()').extract_first()
        ex = conn.sadd('movies_url', response.url)
        for next_href in response.xpath('//div[@class="pager"]/ul/li/a/@href').extract():
            next_url = self.base_url + next_href.replace('../','')
            if ex == 1:
                # print('开始解析单页')
                yield Request(next_url, callback=self.art_url)
                # yield scrapy.Request(url=next_url, callback=self.parse_detail, meta={'title': title,'img_src':img_src})
            else:
                print("无数据更新!!!")
        # print(self.art_urls)
        item['image_urls'] = self.art_urls
        # print(len(item['image_urls']))
        # print(item)
        yield item

    def art_url(self, response):
        art_urls = response.xpath('//div[@id="content"]/div/p/img/@src').extract()
        for art_url in art_urls:    # 开始解析分页
            art_url = art_url.replace('../../upload/','')
            self.art_urls.append(art_url)

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问