gzdyleon 2019-09-27 23:47 采纳率: 0%
浏览 439

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条回答 默认 最新

  • 关注
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题