版权声明本文来自: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. Java进阶学习(4)之继承与多态(下)

    多态变量和向上造型 多态变量 子类和子类型 类定义了类型 子类定义了子类型 子类的对象可以被当作父类的对象来使用 赋值给父类的变量 传递给需要父类对象的函数 放进存放父类对象的容器里 多态变量 Jav ...

  2. 简单json 转换为 map、对象

    1.如果转换的是Map.或者是简单的对象 package com.gc.action; import java.util.Map; import net.sf.json.JSONObject; /** ...

  3. Spring - Spring Boot - 应用构建与运行

    概述 spring boot 应用构建 spring boot 应用运行 背景 之前的看了看 Spring 的书, 结果老懒没实践 而且后续有别的想法, 但这个始终是第一步 1. 准备 知识 java ...

  4. 安装Anaconda3时出现conda不是内部或者外部命令

    在win10,64位,python版本为3.7的环境下安装anaconda3的时候,无法在命令行执行conda命令,一直提示conda不是内部或者外部命令,参考网上的修改环境变量,修改完后还是没有用, ...

  5. C:作用域

    作用域 C语言变量的作用域分为: 代码块作用域(代码块是{}之间的一段代码) 函数作用域 文件作用域 局部变量 局部变量也叫auto自动变量(auto可写可不写),一般情况下代码块{}内部定义的变量都 ...

  6. linux的mysql主从

    数据库备份命令:mysqldymp -u username -p password -B databaseName > fileName.sql 拷贝到从服务器:scp fileName.sql ...

  7. python+树莓派实现IoT(物联网)数据上传到服务器

    环境:raspbian-stretch(2018-06-27) 树莓派:3代B型 1.树莓派设备,需要在野外也能拥有独立联网能力,那必不可少的需要使用物联网模块. 这里使用的是微雪的SIM868通讯模 ...

  8. vs2013编译soui并创建一个项目

    1.soui.10.sln改为soui.13.sln 2.用nodepad++打开soui.13.sln,作如下修改 注:第一行我是改为13.00,编译后似乎自己变为12.00了 编译结果: 注:这是 ...

  9. python学习之网路操作

    socket:服务器与客户端的常规操作,但默认创建的的sever.socket是阻塞式,不支持多个客户端的连接,要想连接多个客户端需要引入多线程.但对于IO类型来说大部分时间其实都在IO上与创建多个线 ...

  10. 【C语言】创建一个函数,判断某一正整数是否为水仙花数,并调用这个函数找出1000以内所有水仙花数

    #include <stdio.h> int fun(int x) { int a, b, c; a = x / ; b = x % / ; c = x % ; if (x == a * ...