版权声明本文来自: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   < 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 成功!

  

scrapy 中 shell 出现 403 Forbiidden 解决方案的更多相关文章

  1. Scrapy的shell命令(转)

    scrapy python MrZONT                        2015年08月29日发布                                            ...

  2. scrapy中选择器用法

    一.Selector选择器介绍 python从网页中提取数据常用以下两种方法: lxml:基于ElementTree的XML解析库(也可以解析HTML),不是python的标准库 BeautifulS ...

  3. linux中shell变量$#,$@,$0,$1,$2的含义解释

    linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

  4. 关于ASP.NET MVC开发设计中出现的问题与解决方案汇总 【持续更新】

    最近一直用ASP.NET MVC 4.0 +LINQ TO SQL来开发设计公司内部多个业务系统网站,在这其中发现了一些问题,也花了不少时间来查找相关资料或请教高人,最终都还算解决了,现在我将这些问题 ...

  5. linux中shell变量$#,$@,$0,$1,$2的含义解释

    linux中shell变量$#,$@,$0,$1,$2的含义解释 linux中shell变量$#,$@,$0,$1,$2的含义解释:  变量说明:  $$  Shell本身的PID(ProcessID ...

  6. td中使用overflow:hidden; 无效解决方案

    td中使用overflow:hidden; 无效解决方案 >>>>>>>>>>>>>>>>>> ...

  7. GEF-whole-upload教程中遇到的问题及解决方案

    最近在学习GEF开发,使用的是GEF-whole-upload这个教程.由于教程当时所使用的版本与本人使用的版本有一些差异,中间出现了不少问题,现在将解决方案分享给大家. 本人使用的Eclipse版本 ...

  8. inux中shell变量$#,$@,$0,$1,$2的含义

    转自:http://www.cnblogs.com/fhefh/archive/2011/04/15/2017613.html linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量 ...

  9. Scrapy中使用Django的Model访问数据库

    Scrapy中使用Django的Model进行数据库访问 当已存在Django项目的时候,直接引入Django的Model来使用比较简单 # 使用以下语句添加Django项目的目录到path impo ...

随机推荐

  1. 减轻集群负载、三种k8s 替代openstack的解决方案

    减轻集群负载.三种k8s 替代openstack的解决方案 待办 https://news.ycombinator.com/item?id=17013779 kubevirt https://host ...

  2. 无源汇有上下界可行流(ZQU 1590)

    无源汇有上下界可行流(也就是循环流) 模型:一个网络,求出一个流,使得每条边的流量必须>=Li且<=Hi, 每个点必须满足总流入量=总流出量(流量守恒)(这个流的特点是循环往复,无始无终) ...

  3. Bug搬运工-CSCux99539:Intermittent error message "Power supply 2 failed or shutdown"

    Description Symptom:Following error messages will be seen intermittently.%PFMA-2-PS_FAIL: Power supp ...

  4. Spring 属性依赖注入

    1.1    属性依赖注入 依赖注入方式:手动装配 和 自动装配 手动装配:一般进行配置信息都采用手动 基于xml装配:构造方法.setter方法 基于注解装配: 自动装配:struts和spring ...

  5. OO博客作业-《JML之卷》

    OO第三单元小结 一.JML语言理论基础以及应用工具链情况梳理 一句话来说,JML就是用于对JAVA程序设计逻辑的预先约定的一种语言,以便正确严格高效地完成程序以及展开测试,这在不能容忍细微错误的工程 ...

  6. jmeter plugin manager安装插件

    https://jmeter-plugins.org/wiki/PluginsManager/ 以websocket 插件为例 先安装plugin manger 第二步:打开jmetre  optio ...

  7. putty上传下载文件

    一,需要pscp.exe,习惯上和Putty.exe文件放在一起. 首先需要保证在命令行下可以访问到pscp.exe.可以通过配置Windows的环境变量Path,或者直接通过命令行访问到pscp.e ...

  8. ViewModel、LiveData、DataBinding

    ViewModel ViewModel的引入 如果系统销毁或重新创建界面控制器,则存储在其中的任何临时性界面相关数据都会丢失.例如,应用的某个 Activity 中可能包含用户列表.因配置更改而重新创 ...

  9. List 重载添加-add,删除-remove方法,以及获取子集方法

    package seday12; import java.util.ArrayList;import java.util.List; /*** @author xingsir* List重载了一对ad ...

  10. 8.5-Day1T3--Asm.Def 的一秒

    题目大意 略... (吐槽这题面...让我毫无阅读兴趣) 题解 首先要求出在以两条斜线为新坐标轴下,每个点的坐标 那么....按x先排序 再求y的最长上升子序列 复杂度O(nlogn)吧 记得开lon ...