跟着教程撸代码
工程目录settings.py中添加
#用户user-agent代理
UAPOOL=[
‘Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/61.0’,#火狐
‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36’,#谷歌
‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134’,#edge
‘Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko’#ie
‘Mozilla/5.0 (Windows NT 6.1) AppleWebkit/536.5’

]
同级目录新增文件uamid.py
重点:from scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddleware

#uamid下载中间件
import random
from myweb.myfirstpjt.myfirstpjt.settings import UAPOOL
from  scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddlewareclass Uamid(UserAgentMiddleware):def __init__(self,ua=''):self.ua=uadef process_request(self, request, spider):thisua=random.choice(UAPOOL)print("当前使用的user_agent是:"+thisua)request.headers.setdefault('User-Agent',thisua)if __name__=='__main__':UA=Uamid()

去settings中增加中间件uamid

搜索关键字”DOWNLOADER_MIDDLEWARES “去掉字典注释,
不要忘记末尾的逗号“,”分隔字典。
重点:
‘scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware’:2,
‘myfirstpjt.uamid.Uamid’:1,

DOWNLOADER_MIDDLEWARES = {
#    'myfirstpjt.middlewares.MyfirstpjtDownloaderMiddleware': 543,'scrapy.contrib.downloadermiddleware.useragent .UserAgentMiddleware':2,'myfirstpjt.uamid.Uamid':1,

运行报错。!有道一下报错信息

scrapy.contrib.downloadermiddleware.useragent'is deprecated(是弃用模块)
(使用)use scrapy.downloadermiddlewares.useragent

D:\py3\python.exe D:/py3/myweb/myfirstpjt/myfirstpjt/uamid.py
['D:\\py3\\myweb\\myfirstpjt\\myfirstpjt', 'D:\\py3\\myweb', 'D:\\py3\\python37.zip', 'D:\\py3\\DLLs', 'D:\\py3\\lib', 'D:\\py3', 'D:\\py3\\lib\\site-packages', 'D:\\py3\\lib\\site-packages\\win32', 'D:\\py3\\lib\\site-packages\\win32\\lib', 'D:\\py3\\lib\\site-packages\\Pythonwin', 'D:\\py3\\myweb\\myfirstpjt\\myfirstpjt']
D:/py3/myweb/myfirstpjt/myfirstpjt/uamid.py:4: ScrapyDeprecationWarning: Module `scrapy.contrib.downloadermiddleware.useragent` is deprecated, use `scrapy.downloadermiddlewares.useragent` insteadfrom  scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddleware

不确定,百度一下,正好有scrapy文档链接
ctrl+f:查找UserAgentMiddleware

UserAgentMiddleware
类scrapy.downloadermiddlewares.useragent.UserAgentMiddleware
允许蜘蛛覆盖默认用户代理的中间件。为了使蜘蛛覆盖默认用户代理, 必须设置其user_agent属性。

修改uamid内容,将:
from scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddleware
:替换为
from scrapy.downloadermiddlewares.useragent import UserAgentMiddleware
init中ua=”, 替换为user_agent=”

import random
from myxml.settings import UAPOOL
from scrapy.downloadermiddlewares.useragent import UserAgentMiddleware
class Uamid(UserAgentMiddleware):def __init__(self,user_agent=''):self.user_agent=user_agentdef process_request(self, request, spider):thisua=random.choice(UAPOOL)print("当前使用的user_agent是:"+thisua)request.headers.setdefault('user_agent',thisua)if __name__=='__main__':UA=Uamid()

settings一样修改为:

DOWNLOADER_MIDDLEWARES = {
#    'myxml.middlewares.MyxmlDownloaderMiddleware': 543,'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware':2,'myxml.uamid.Uamid':1,
}

前往工作文件夹下D:\py3\myweb\myxml,输入框输入cmd打开在当前路径下,不用麻烦输入dos命令cd跳转路径什么的。
D:\py3\myweb\myxml>scrapy crawl myxmlspider
运行,成功。scrapy crawl myxmlspider –nolog,不显示日志,可看可不看,报错时在看。

总结:scrapy15.0,将中间件部分原来的旧模块弃用了导致运行失败,爬坑不容易,且行且珍惜!
感谢有道在线翻译,给了英语渣一条活路。

scrapy15.0,scrapy.contrib.downloadermiddleware.useragent` is deprecated,旧模块被弃用解决办法.相关推荐

  1. VC++6.0使用GDI++出现'ULONG_PTR'未定义和'token' 未定义的解决办法

    VC++6.0使用GDI++出现'ULONG_PTR'未定义和'token' 未定义的解决办法 http://hi.baidu.com/programpad/blog/item/5e479f4dfd5 ...

  2. Android7.0+安装apk文件之后不弹出安装完成的界面解决办法

    在Android7.0+手上,版本升级完成,发现手机安装完成,不启动安装完成页面,而是直接关闭了,小编也是一头雾水.琢磨了很久,下面小编把解决办法show出来. 第一步:在资源文件下面新建 xml文件 ...

  3. Net4.0的网站在IE10、IE11出现“__doPostBack未定义”的解决办法。

    方法一.浏览器设置成兼容模式. 方法二.安装服务器版的.Net40的补丁.http://download.csdn.net/detail/5653325/6642051 方法三.点击VS的工具菜单-- ...

  4. 使用scrapy报错:attrs() got an unexpected keyword argument 'eq'解决办法

    使用scrapy的时候报错attrs() got an unexpected keyword argument 'eq',在百度和bing上面找了一圈没找到解决方法,最后在谷歌上找到了,出现这个问题的 ...

  5. 在pycharm终端输入scrapy指令执行时出现不是内部或外部指令解决办法

    如果在终端输入 scrapy指令时,出现类似下图情况 网上很多教程让使用conda,但如果你已经把模块下载好了,或者对conda不太了解,就可以使用以下方法,基本可以解决上面的问题.(配置环境变量方法 ...

  6. thinkphp5.0 使用paginate 分页后 foreach 循环体内不能处理数据的解决办法

    方法一.使用toArray()将查询出来的分页数据转成数组 $data = $goods_list->toArray(); $list = $data['data'];//要处理的数据 方法二. ...

  7. flask中 app.run(host='0.0.0.0', port=5000, debug=False) 不能用外网ip访问的解决办法

    pycharm 2018开启debug模式和修改host: 在Pycharm 2018中,如果想要开启debug模式和更改端口号,则需要编辑项目配置.直接在app.run中更改是无效的.示例图如下:  ...

  8. ThinkPhp5.0.24 JWT报错 ‘“kid“ empty, unable to lookup correct key‘解决办法

    今天遇到个坑,记录一下. 在记录之前,还是要补充装环境的坑. 前段时间记录了一下ThinkPhp5不知道多少,开发环境是macos11,因为macos自带apache,php开发环境,直接把apach ...

  9. builtins.ModuleNotFoundError: No module named ‘’scrapy.contrib‘’

    builtins.ModuleNotFoundError: No module named 'scrapy.contrib' 错误原因: 旧模块被弃用 解决办法 查看对应自己所用scrapy版本的官方 ...

  10. Scrapy中scrapy.loader.processors、scrapy.contrib.loader.processor的区别

    区别就是scrapy.contrib.loader.processor模块导入了scrapy.loader.processors中的所有内容: Lib/site-packages/scrapy/loa ...

最新文章

  1. iOS UIView快速添加事件
  2. vue-router动态路由示例
  3. tensor flow lstm 图像 一条直线_深入理解LSTM
  4. 《HBase权威指南》一导读
  5. 微型计算机的字节取决于什么的宽度,计算机的字长取决于什么?
  6. Qt工作笔记-对QImage的进一步认识(关于α通道)
  7. 利用Gitee搭建个人图床(上)
  8. 代理proxy网络代理自动发现wpad代理自动配置pac三个概念解析
  9. ES基础概念和集群概念
  10. Java建造者模式详解
  11. 人工智能python营_贪心学习院人工智能python编程特训营
  12. webpack的一些plugin,怎么使用webpack对项目进行优化
  13. 性能优化-简谈JVM
  14. 计算机毕业设计之Android的图书馆借阅占座座位app(源码+系统+mysql数据库+Lw文档)
  15. windows 10 Docker Desktop TeamTalk 安装笔记
  16. 淘宝帝国是如何创建的连载04
  17. JavaScript首次体验
  18. 一口气讲完设计模式(单例模式、工厂模式、原型模式、建造者模式、适配器、桥梁模式)
  19. vue 使用video加载视频进行展示,视频循环自动播放
  20. crontab使用实例

热门文章

  1. 启动kafka时报错:java.nio.file.FileSystemException,另一个程序正在使用此文件,进程无法访问。
  2. educoder锁存器和触发器设计—JK触发器设计+T触发器设计
  3. ESP32 LVGL8.1 ——Style Text 设置文字样式 (Style 8)
  4. STM32 学习十 Flash下载与调试
  5. 计算机到期收益率公式,用到期收益率计算债券价格
  6. 如何获取音乐的地址链接
  7. ES2022 有什么新功能?一起来瞧瞧
  8. android ogg资源,Android实现OGG音频的无缝循环播放
  9. Centos7.8系统安装dkms
  10. DOE全因子实验设计报告