scrapy 改 scrapy-redis
1.spider 修改
class CgysSpider(scrapy.Spider): name = 'clispider' start_urls = ['https://search.bilibili.com/all?keyword=%E6%A9%99%E6%9E%9C%E5%8C%BB%E7%94%9F'] # 改成 from scrapy_redis.spiders import RedisSpider class ClispiderSpider(RedisSpider): name = 'clispider' redis_key = 'cl5:start_urls'
2.setting.py修改
# 1(必须). 使用了scrapy_redis的去重组件,在redis数据库里做去重 DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter" # 2(必须). 使用了scrapy_redis的调度器,在redis里分配请求 SCHEDULER = "scrapy_redis.scheduler.Scheduler" # 3(必须). 在redis中保持scrapy-redis用到的各个队列,从而允许暂停和暂停后恢复,也就是不清理redis queues SCHEDULER_PERSIST = True # 4(必须). 通过配置RedisPipeline将item写入key为 spider.name : items 的redis的list中,供后面的分布式处理item # 这个已经由 scrapy-redis 实现,不需要我们写代码,直接使用即可 ITEM_PIPELINES = { # 'AQI.pipelines.AqiJsonPipeline': 200, # 'AQI.pipelines.AqiCSVPipeline': 300, # 'AQI.pipelines.AqiRedisPipeline': 400, # 'AQI.pipelines.AqiMongoPipeline': 500, 'scrapy_redis.pipelines.RedisPipeline': 100 } # 5(必须). 指定redis数据库的连接参数 REDIS_HOST = "192.168.1.235" REDIS_PORT = 6379 REDIS_PARAMS = { "password": "KangCe@0608", } # 6.如果不启用则按scrapy默认的策略 # -1. 默认的 按优先级排序(Scrapy默认),由sorted set实现的一种非FIFO、LIFO方式。 # SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderPriorityQueue' # -2. 可选的 按先进先出排序(FIFO) # SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderQueue' # -3. 可选的 按后进先出排序(LIFO) # SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderStack' # 7. LOG等级 #LOG_LEVEL = 'DEBUG'
3.启动scrapy-reids
scarpy crawl clispider 或者启动多个 scrapy crawlall
4.上传url到reids
lpush sinaspider:start_urls http://news.sina.com.cn/guide/
或
from redis import ConnectionPool, StrictRedis import os REDIS_HOST = "115.238.111.198" REDIS_PORT = "6380" REDIS_PASSWORK = "KangCe@0608" pool = ConnectionPool(host=REDIS_HOST, port=REDIS_PORT, db=0, password=REDIS_PASSWORK, ) # password=REDIS_PASSWD) conn = StrictRedis(connection_pool=pool) # password=REDIS_PASSWD) # juzi_key,coal_dict,key4 path = 'D:\\02-python\\04-work\\80-bt\\clili\\key\\aaa' name_list = os.listdir(path) for name in name_list: with open("%s\\%s" % (path, name), encoding='utf-8') as f: keys = set(f.readlines()) for _key in keys: key = _key.strip() conn.lpush("juzi:start_urls", "http://juzicili.com/btlist/{}.html ".format(key)) # juzikey\coal_4\coal_3\coal_2\coal_1\figu_1\figu_0\key1 conn.lpush("diaosisou:start_urls", "http://www.diaosisou.cc/list/{}".format(key)) # juzikey\coal_4\coal_3\coal_2\figu_1\figu_0\key1 conn.lpush("cl5:start_urls", "https://www.cl5.org/kw/{}.html".format(key)) # juzikey\coal_4\coal_3\coal_2\coal_1\coal_0\figu_1\figu_0\key1 conn.lpush("sosobtx:start_urls", "https://www.sosobtx.com/s/{}.html".format(key))# juzikey\coal_4\key1 conn.lpush("btrabbit:start_urls", "https://www.btrabbit.la/search/{}".format(key)) # juzikey\coal_4\coal_3\coal_2\figu_1\figu_0\key1 print("{}:push success".format(key))
5.常用的reids命令
keys * 查看所以建 llen key 查看列表长度 redis redis-cli -h 192.168.1.235 -p 6379 -auth KangCe@0608 ltrim [ltrim key range_l range_r]:保留区域类的元素,其他的删除 ltrim plist 0 3 lpop 、rpop:分别为删除头部和尾部第一个元素,返回被删除的元素 lpop plist rpop plist
scrapy 改 scrapy-redis的更多相关文章
- <scrapy爬虫>scrapy命令行操作
1.mysql数据库 2.mongoDB数据库 3.redis数据库 1.创建项目 scrapy startproject myproject cd myproject 2.创建爬虫 scrapy g ...
- python爬虫scrapy之scrapy终端(Scrapy shell)
Scrapy终端是一个交互终端,供您在未启动spider的情况下尝试及调试您的爬取代码. 其本意是用来测试提取数据的代码,不过您可以将其作为正常的Python终端,在上面测试任何的Python代码. ...
- 第三百三十一节,web爬虫讲解2—Scrapy框架爬虫—Scrapy安装—Scrapy指令
第三百三十一节,web爬虫讲解2—Scrapy框架爬虫—Scrapy安装—Scrapy指令 Scrapy框架安装 1.首先,终端执行命令升级pip: python -m pip install --u ...
- Scrapy之Scrapy shell
Scrapy Shell Scrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式,查看他们的工作方式,方便我们爬取的网页中提取的数据 ...
- 十 web爬虫讲解2—Scrapy框架爬虫—Scrapy安装—Scrapy指令
Scrapy框架安装 1.首先,终端执行命令升级pip: python -m pip install --upgrade pip2.安装,wheel(建议网络安装) pip install wheel ...
- scrapy - 给scrapy 的spider 传值
scrapy - 给scrapy 的spider 传值 方法一: 在命令行用crawl控制spider爬取的时候,加上-a选项,例如: scrapy crawl myspider -a categor ...
- python - scrapy 爬虫框架 ( redis去重 )
1. 使用内置,并加以修改 ( 自定义 redis 存储的 keys ) settings 配置 # ############### scrapy redis连接 ################# ...
- scrapy(2)——scrapy爬取新浪微博(单机版)
Sina爬虫教程 Scrapy环境搭建 环境:window10 + python2.7(包含scrapy)+ mongoDB 1.1 安装集成了python2.7的anaconda ana ...
- Scrapy 解决Scrapy安装时报错"Microsoft Visual C++ 14.0 is required"
问题描述 当前环境win10,python_3.6.1,64位.在windows下,在dos中运行pip install Scrapy报错:error: Microsoft Visual C++ 14 ...
随机推荐
- [LeetCode] 518. Coin Change 2 硬币找零之二
You are given coins of different denominations and a total amount of money. Write a function to comp ...
- Codeforces Round #607 (Div. 1) Solution
从这里开始 比赛目录 我又不太会 div 1 A? 我菜爆了... Problem A Cut and Paste 暴力模拟一下. Code #include <bits/stdc++.h> ...
- 多模态数据联合Embedding的方法小结
当模型需要接受多个模态的数据时,往往需要设计合适的方法让他们能进行信息的融合,Joint embedding是一种较为普遍的思路,即将他们映射到同一个向量空间中,再进行融合. 向量拼接.元素级相乘.做 ...
- ApartmentState.STA
需要设置子线程 ApartmentState 为 STA 模式,但 Task 又不能直接设置 ApartmentState,因此需要用 Thread 来封装一下. using System.Threa ...
- 2017 ACM/ICPC Asia Regional Shenyang Online E number number number 题解
分析: 当n=1时ans=4=f(5)-1; n=2,ans=12=f(7)-1; n=3,ans=33=f(9)-1; 于是大胆猜想ans=f(2*k+3)-1. 之后用矩阵快速幂求解f(n)即可, ...
- 新安装NODEJS之后配置
1配置阿里镜像服务器 npm config set registry https://registry.npm.taobao.org --global npm config set disturl h ...
- 如何解决aws解绑银行卡问题?
首先先来说明一下我自己的情况? 一年的免费使用 前提:没有开启任何的实例服务 先贴一条官方的解释 关于我小白一个.学校课程要求使用aws,注册之后在网络上看到一堆人踩坑,aws的扣费就是个坑! 预授权 ...
- 027 奥展项目涉及的javascipt知识点笔记
1.获取指定div标签内的所有input标签 let inputs = document.getElementById("inspect-part1").getElementsBy ...
- centos安装sftp服务
一.创建sftp服务数据目录及相关测试用户 [root@localhost ~]# mkdir -pv /data/sftp/ #sftp数据目录 [root@localhost ~]# chown ...
- 『count 区间dp』
count Description 既然是萌萌哒 visit_world 的比赛,那必然会有一道计数题啦! 考虑一个N个节点的二叉树,它的节点被标上了1-N的编号. 并且,编号为i的节点在二叉树的前序 ...