scrapy运行没有结果的问题

img

img


Python爬虫scrapy框架中运行显示不出结果,不报错 (用scrapy模拟cookie登陆的问题)

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/1057436
  • 这篇博客你也可以参考下:scrapy框架中cookie的设置路径
  • 除此之外, 这篇博客: Python中Scrapy框架中的 1、 cookie 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在整个框架运作前,需要一个启动条件,这个启动条件就是start_urls,首先从start_urls的网页发起requests请求,才会有后面的调度器、下载器、爬虫、管道的运转。所以,这里我们可以针对start_urls进行网络请求的start_requests方法进行重写,把我们的cookie给携带进去

    注意:必须要使用yield返回,不然没办法运行

    import scrapy
    
    
    class ExampleSpider(scrapy.Spider):
        name = 'example'
        # allowed_domains = ['example.com']
        start_urls = ['https://www.baidu.com']
    
        # 重写start_request方法,scrapy从这里开始
        def start_requests(self):
            # 添加cookie的第一种方法,直接添加
            cookie = " "
            cookie_dic = {}
            for i in cookie.split(";"):
                cookie_dic[i.split("=")[0]] = i.split("=")[1]
    
            # 添加cookie的第二种方法:添加头部
            headers = {
                "cookie": "cookie_info",
                # 使用headers传入cookie时,要在settings中加入COOKIES_ENABLE = True
            }
            for url in self.start_urls:
                yield scrapy.Request(url=url, callback=self.parse, headers=headers)  # 添加cookies
    
        def parse(self, response):
            print(response.text)
    
  • 您还可以看一下 龙豪杰老师的Python网络爬虫课程中的 获取cookie对象小节, 巩固相关知识点