Scrapy返回空列表问题的解决办法

 今天学习Scrapy框架时,调用下面的方法发送请求时返回的居然是一个空列表。

import scrapy


class Test01Spider(scrapy.Spider):
    name = "test01"
    allowed_domains = ["https://baike.baidu.com/item/%E7%99%BE%E5%BA%A6/6699?fromModule=lemma_search-box"]
    start_urls = ["https://baike.baidu.com/item/%E7%99%BE%E5%BA%A6/6699?fromModule=lemma_search-box"]


    def parse(self, response):
        pass
        get_text = response.xpath("/html/body/div[3]/div[2]/div/div[1]/div[4]/div[3]/text()").extract()
        print(get_text)

 在我尝试很多遍,并且检查发现xpath没错的情况下还是返回空列表。

后面上网搜了很多解决方案,发现是头信息里的cookie没有设置,Scrapy默认用了它内部设置的头信息。于是对setting里面的内容进行修改就可以了 :

1、取消注释COOKIES_ENABLE = False

Scrapy返回空列表问题的解决办法_第1张图片

2、取消注释DEFAULT_REQUEST_HEADERS并且增加Cookie信息:

Scrapy返回空列表问题的解决办法_第2张图片

这样再请求就可以获取到相应的信息了:

你可能感兴趣的:(学习笔记,scrapy,python,开发语言)