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 ...
随机推荐
- Maven使用第三方Jar文件
本例中,需要在Maven项目里添加uiautomator.jar文件.以下介绍两种方法: 方法一:在pom.xml里指定jar文件目录 <dependency> <groupId&g ...
- [转载]3.15 UiPath图片操作保存图片的介绍和使用
一.保存图像 (Save Image)的介绍 可以将图像保存到磁盘的一种活动 二.保存图像 (Save Image)在UiPath中的使用 1.打开设计器,在设计库中新建一个Sequence,为序列命 ...
- [报名中] 腾讯技术专家为你揭秘"音视频及融合通信技术"
| 导语 6月29日,北京东直门亚朵S酒店,云+社区邀您参加<音视频及融合通信技术>沙龙活动,深度探讨音视频及融合通信技术的发展及实践,领略前沿,共创价值. 数字多媒体技术的不断发展对音视 ...
- HOT SUMMER 每天都是不一样,积极的去感受生活 C#关闭IE相应的窗口 .
window.close(); System.Diagnostics.Process[] myProcesses; myProcesses = System.Diagnostics ...
- centos 安装 oracle11r2
因为要测试spark链接oracle,所以需要再服务器装oracle 1.下载oracle, 如果自己下载需要注册,比较麻烦,可以直接用如下命令下载 因为zip比较大,建议nohup 后台下载 noh ...
- 全局安装npm包报错没有权限
背景:npm i npm-check -g 时报错没有权限 Error: EACCES: permission denied, access '/usr/local/lib/node_modules' ...
- 错误:PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。"+文件路径"的解决方案
最近在使用python进行筛选图片的时候,想到用python里面的os库进行图片的删除. 具体筛选方法就是,删除掉图片长度或宽度小于100像素的图片,示例代码如下所示: for file in os. ...
- WPF DataGird 类似Excel筛选效果 未成品
这个本是针对MSDN上所写的代码,不过写一半不想写了. 不想浪费代码,是个半成品的半成品. 效果图: 思路: 利用PopUp来做显示层. 显示层中的数据则是绑定到Datagrid的数据. popup中 ...
- 目标检测算法之R-CNN和SPPNet原理
一.R-CNN的原理 R-CNN的全称是Region-CNN,它可以说是第一个将深度学习应用到目标检测上的算法.后面将要学习的Fast R-CNN.Faster R-CNN全部都是建立在R-CNN基础 ...
- R数据挖掘 第一篇:聚类分析(划分)
聚类是把一个数据集划分成多个子集的过程,每一个子集称作一个簇(Cluster),聚类使得簇内的对象具有很高的相似性,但与其他簇中的对象很不相似,由聚类分析产生的簇的集合称作一个聚类.在相同的数据集上, ...