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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值