• scrapy 中 shell 出现 403 Forbiidden 解决方案


    版权声明本文来自:https://blog.csdn.net/qq_37462361/article/details/87860025

    进入正题:

      出现 403,表示网站拒绝提供服务

      (因为很多网站都有反爬机制,其实使用 scrapy shell 的时候就是以 scrapy 爬虫的标志进行访问的,所以网站回拒绝爬虫的服务,返回 403)

    解决方案:

      方案一:只治标,不治本

        在使用scrapy 的时候在最后加上 -s USER-AGENT = "Mozills/5.0"

        eg: 

    scrapy shell "https://movie.douban.com" -s USER_AGENT='Mozills/5.0

      方案二:半治标半治本

        修改scrapy 中 setting.py 文件的 USER-AGENT

        修改前:

    #USER_AGENT = 'yi (+http://www.yourdomain.com)'

      修改后:

    USER_AGENT = 'Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0'

      注意:

        这里的 scrapy 只能在 scrapy 中使用,直接在cmd 中使用不生效,这就是作者说的半指标半治本

    scrapy shell https://movie.douban.com/top250

      我们可以看见返回成功的信息:

    response   <200 https://movie.douban.com/top250>

      方案三:治愈

        直接修改 python 的defult_setting.py 文件里默认的 USER-AGENT值

        (那么之后不管实在项目中还是再 cmd 中使用 scrapy shell ,都是以浏览器的标识阱行访问网站的)、

        那么 找到 defult_setting.py 文件的位置;

          一般在你安装 python 的目录下的 /lib/site-package/scrapy/deting.py中 找到 user-agent进行修改:

        修改前:

    USER_AGENT = 'Scrapy/%s (+http://scrapy.org)' % import_module('scrapy').__version__

        修改后:

    USER_AGENT = 'Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0'  

      现在不管是在 cmd 中还是在 scrapy 项目中执行 scrapy shell 的时候都会返回 200 成功!

      

  • 相关阅读:
    BZOJ 3390 Bad Cowtractors牛的报复
    BZOJ 4291 Kieszonkowe
    【重温基础】3.循环和迭代
    【重温基础】3.循环和迭代
    【重温基础】2.流程控制和错误处理
    【重温基础】2.流程控制和错误处理
    【重温基础】1.语法和数据类型
    【重温基础】1.语法和数据类型
    vue axios全攻略
    vue axios全攻略
  • 原文地址:https://www.cnblogs.com/jcjc/p/11573021.html
Copyright © 2020-2023  润新知