当前位置: 首页 > news >正文

杨凌网站开发今日重大军事新闻

杨凌网站开发,今日重大军事新闻,自己电脑做局域网网站服务器,品牌授权书模板前言: 重点在读connection.py的源码,这个组件主要是用来连接的; 因为连接都无法做到,后面想更改点自定义就白扯了; 正文: 翻译版的connection.py源码: import sys import six from scrapy.utils.misc import load_object from . import defaults# 快捷方式映射 设置名称 -&…

前言:

重点在读connection.py的源码,这个组件主要是用来连接的; 因为连接都无法做到,后面想更改点自定义就白扯了;

正文:

翻译版的connection.py源码:

import sys
import six
from scrapy.utils.misc import load_object
from . import defaults# 快捷方式映射 '设置名称' -> '参数名称'
SETTINGS_PARAMS_MAP = {'REDIS_URL': 'url','REDIS_HOST': 'host','REDIS_PORT': 'port','REDIS_DB': 'db','REDIS_ENCODING': 'encoding',
}if sys.version_info > (3,):SETTINGS_PARAMS_MAP['REDIS_DECODE_RESPONSES'] = 'decode_responses'def get_redis_from_settings(settings):"""从给定的Scrapy设置对象返回一个redis客户端实例。此函数使用``get_client``来实例化客户端,并使用``defaults.REDIS_PARAMS``作为参数的默认值。您可以使用``REDIS_PARAMS``设置来覆盖它们。参数----------settings : Settings一个Scrapy设置对象。参见下面支持的设置。返回-------serverRedis客户端实例。其他参数----------------REDIS_URL : str, 可选服务器连接URL。REDIS_HOST : str, 可选服务器主机。REDIS_PORT : str, 可选服务器端口。REDIS_DB : int, 可选服务器数据库。REDIS_ENCODING : str, 可选数据编码。REDIS_PARAMS : dict, 可选其他客户端参数。Python 3 Only----------------REDIS_DECODE_RESPONSES : bool, 可选设置`decode_responses` kwarg在Redis cls的构造函数中。"""params = defaults.REDIS_PARAMS.copy()params.update(settings.getdict('REDIS_PARAMS'))# XXX: Deprecate REDIS_* settings.for source, dest in SETTINGS_PARAMS_MAP.items():val = settings.get(source)if val:params[dest] = val# 允许 ``redis_cls`` 是一个类的路径。if isinstance(params.get('redis_cls'), six.string_types):params['redis_cls'] = load_object(params['redis_cls'])return get_redis(**params)# 向后兼容的别名。
from_settings = get_redis_from_settingsdef get_redis(**kwargs):"""返回一个redis客户端实例。参数----------redis_cls : class, 可选默认值为 ``redis.StrictRedis``。url : str, 可选如果给定,将使用``redis_cls.from_url``来实例化该类。**kwargs要传递给``redis_cls``类的额外参数。返回-------serverRedis客户端实例。"""redis_cls = kwargs.pop('redis_cls', defaults.REDIS_CLS)url = kwargs.pop('url', None)if url:return redis_cls.from_url(url, **kwargs)else:return redis_cls(**kwargs)

介绍

该模块包含两个主要的函数:
  • get_redis_from_settings(settings):
    • 该函数从Scrapy的设置对象中获取Redis客户端实例。它使用get_client来实例化客户端,并使用默认参数值 defaults.REDIS_PARAMS。您可以通过设置REDIS_PARAMS来覆盖这些默认值。此函数允许您通过设置Scrapy的设置来轻松配置和创建Redis连接。
  • get_redis(**kwargs):
    • 该函数返回一个Redis客户端实例。它使用提供的参数来初始化实例。如果提供了url参数,则通过redis_cls.from_url方法来实例化类。否则,它使用提供的参数来构造Redis客户端实例。

-------这些函数的目的是为了在Scrapy中与Redis服务器进行交互,例如在分布式爬虫中使用Redis作为任务队列、存储爬取的数据等;

案例:

1. 创建一个Scrapy项目:

scrapy startproject myproject
cd myproject


 

2. 在Scrapy项目的根目录下,创建一个新的Spider,并将Redis相关的配置添加到Scrapy的设置文件中(settings.py):

# 启用Scrapy-Redis插件
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"# 指定Redis连接信息
REDIS_URL = 'redis://127.0.0.1:6379'

3. 创建一个Spider,使用Redis进行分布式爬取:

import scrapy
from scrapy_redis.spiders import RedisSpiderclass MySpider(RedisSpider):name = 'myspider'redis_key = 'myspider:start_urls'  #这里面的值随便你定义#例如,你写成:"s:B"   -->在redis同链接下,输入:`lpush s:B https://wangzhi.com`一样能跑def parse(self, response):# 处理爬取到的数据# ...yield scrapy.Request(url, callback=self.parse)

在这个例子中,我们先继承`RedisSpider`类来创建我们的Spider。`redis_key`属性指定了初始URL在Redis中的键。Scrapy-Redis插件会自动从该键读取URL,并且使用`parse`方法进行爬取和解析。

4. 在Scrapy项目的主文件(main.py)中,导入并使用`get_redis_from_settings`函数来获取Redis连接实例:
import scrapy
from scrapy.crawler import CrawlerProcess
from scrapy_redis import get_redis_from_settingsfrom myproject.myspider import MySpider# 获取Redis连接实例
settings = scrapy.settings.Settings()
redis_conn = get_redis_from_settings(settings)# 创建CrawlerProcess
process = CrawlerProcess(settings)
process.crawl(MySpider, redis_conn=redis_conn)
process.start()

通过使用`get_redis_from_settings`函数,我们从Scrapy的设置对象中获取Redis连接实例。然后,我们可以将该连接实例传递给我们的Spider,并使用`redis_conn`参数进行配置。最后,我们使用`CrawlerProcess`来创建和启动爬虫进程。

总结:

一般来说,这么操作一番下来! 你丢个起始url进去,项目能跑了,就是连接成功了!  项目跑不了,就是没连接成功,那你就对着源码好好检查一下子!

http://www.yidumall.com/news/20178.html

相关文章:

  • 免费给我推广湖北百度seo排名
  • 武汉网站建设供应商百度搜索引擎投放
  • 苏州网站建设设计公司网络广告策划
  • wordpress修改地址后网站打不开新闻头条 今天
  • 武汉交友群正规网站优化哪个公司好
  • 百度做的网站一般在什么后台产品免费推广网站有哪些
  • 东莞做网站公司首选!优化营商环境心得体会2023
  • 免费网站java源公司网站建设方案
  • 哈尔滨网站备案手续费河北seo技术交流
  • 荆门网站开发有哪些线上推广方案模板
  • 贵州网站外包品牌策划运营公司
  • 小学学校网站建设方案网络营销的方式与手段
  • 国际工程承包青岛seo排名公司
  • 网站没有做适配 怎么办怎么建个网站
  • 企业做网站哪家网站好seo推广培训课程
  • wordpress备份数据库结构抖音关键词优化排名靠前
  • 网站开发毕业设计书登封搜索引擎优化
  • wordpress怎样发邮件seo自学教程
  • oa系统使用步骤北京seo网络优化师
  • 天津做网站的网络公司页面优化算法
  • 广州模板网站怎么样优化网站seo
  • phpcms 转 wordpress tagseo英文怎么读
  • 哪些网站图片做海报好网址大全下载到桌面
  • 硬件开发平台有哪些外贸推广优化公司
  • 上海平台网站建设公司宁波网站推广公司价格
  • 福州网站外包市场营销推广策划
  • wordpress源码网站主题株洲seo快速排名
  • 雨花区区网站建设公司新闻发布最新新闻
  • 惠城网站建设有哪些seo怎么发布外链
  • 2018网站做外链优化大师免费安装下载