sinat_38677939 2018-12-09 16:20 采纳率: 0%
浏览 1631

没有进行筛选,scrapy-Request callback不调用,跪求大神指点!!!

Spider的代码是这样的:

    def parse(self, response):
        url_list = response.xpath('//a/@href').extract()[0]
        for single_url in url_list:
                    url = 'https:' + single_url.xpath('./@href').extract()[0]
            name = single_url.xpath('./text()').extract()[0]
            yield scrapy.Request(url=url, callback=self.parse_get, meta={'url':url, 'name':name})

    def parse_get(self, response):
            print(1)
                item = MySpiderItem()
                item['name'] = response.mate['name']
                item['url'] = response.mate['url']
                yield item                  

middlewares的代码是这样的:

    def process_request(self, request, spider):
        self.driver = webdriver.Chrome()
        self.driver.get(request.url)
        if 'anime' in request.meta:
            element = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, 'header')))
        else:
            element = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, 'header')))
        html = self.driver.page_source
        self.driver.quit()

        return scrapy.http.HtmlResponse(url=request.url, body=html, request=request, encoding='utf-8')

我是用Chrome来运行的,Request里面的url是一个一个地打开了,但是一直没有调用parse_get。一直都没有加allowed_domains,也尝试过在Request中加dont_filter=True,但是网站能打开,证明应该不是网站被过滤了的问题。实在是没有想法了,求大神指导!!!!

  • 写回答

1条回答

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-09 17:34
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考