分类 linux 中的文章

如何编写最佳的Dockerfile

译者按: Dockerfile的语法非常简单,然而如何加快镜像构建速度,如何减少Docker镜像的大小却不是那么直观,需要积累实践经验。这篇博客可以帮助你快速掌握编写Dockerfile的技巧。 原文: How to write excellent Dockerfiles 译者: Fundebug 为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有……

阅读全文

[crontab]linux下简单的调度配置及使用

介绍 虽然在几篇博客之前介绍了Dagobah这个调度框架,不过对于一些固定调度,很稳定的那种,可以考虑使用linux内置调度器,crontab ,这是系统内置的,相当稳定 ,不用人工干预 优点 可以实现不同的用户调度不同的东西,cron 表达式功能强大,很容易写出符合你需求的周期表达式 使用 登……

阅读全文

scrapy经验分享-同一项目不同的spider启用不同的配置

在群里经常被问到如何解决同一个爬虫启用不同的piepline的问题,一般的解决通过参数的不同解决这个 def process_item(self, item, spider): self._client.create_index([('msg_id', pymongo.DESCENDING)], background=True) self._client.update_one(filter={'msg_id': item['msg_id']}, update={'$set': dict(item)}, upsert=True) return item 代码中有两个重要的参数item,还有一个spider ,我们打个断点来看看spider 里面的都有些什么 简单点我们可以通过name做逻辑上的判断 if spider.name == 'spider_1': do sth....……

阅读全文

[scrapy]scrapy源码分析–中间件是如何加载的

中间件是scrapy的核心部分,数据的传递,队列的维护,都是靠中间件,所以了解他的生命周期还是很有必要的 https://github.com/scrapy/scrapy/blob/master/scrapy/core/spidermw.py def _add_middleware(self, mw): super(SpiderMiddlewareManager, self)._add_middleware(mw) if hasattr(mw, 'process_spider_input'): self.methods['process_spider_input'].append(mw.process_spider_input) if hasattr(mw, 'process_spider_output'): self.methods['process_spider_output'].insert(0, mw.process_spider_output) if hasattr(mw, 'process_spider_exception'): self.methods['process_spider_exception'].insert(0, mw.process_spider_exception) if hasattr(mw, 'process_start_requests'): self.methods['process_start_requests'].insert(0, mw.process_start_requests) 将中间件的每内置的方法加入到方法链上,注意,这里的数值越小,处理越靠前,下同 https://github.com/scrapy/scrapy/blob/master/scrapy/core/scraper.py 这里就去处理spiderMiddleWare class Scraper(object):……

阅读全文

[scrapy]scrapy源码分析--数据是如何处理的

目录 下载中间件(Download MiddleWare)是如何加载的 Spider MiddleWare是如何加载的 配置文件是如何起作用的 整体的执行流程是怎样的 扩展件是如何工作的 数据是怎么处理的 分析 我们正常的思路就是从spider的parse方法来着手,因为我们写的最多的代码就是从这里开始的,这……

阅读全文

[爬虫资源]各大爬虫资源大汇总,做我们自己的awesome系列

大数据的流行一定程序导致的爬虫的流行,有些企业和公司本身不生产数据,那就只能从网上爬取数据,笔者关注相关的内容有一定的时间,也写过很多关于爬虫的系列,现在收集好的框架希望能为对爬虫有兴趣的人,或者想更进一步的研究的人提供索引,也随时欢迎大家star,fork ,或者提issue,让……

阅读全文

[搜索引擎searx]10分钟搭建一个好玩的python全文搜索引擎

源起 之前有一个群友在群里问个如何快速搭建一个搜索引擎,在搜索之后我看到了这个 代码所在 Git:https://github.com/asciimoo/searx 官方很贴心,很方便的是已经提供了docker 镜像,基本pull下来就可以很方便的使用了,执行命令 cid=$(sudo docker ps -a | grep searx | awk '{print $1}') echo searx cid is $cid if [ "$cid" != "" ];then sudo docker stop $cid sudo docker rm $cid fi sudo docker run -d --name searx -e IMAGE_PROXY=True -e BASE_URL=http://yourdomain.com -p 7777:8888 wonderfall/searx 然后就可以……

阅读全文

(12)分布式下的爬虫Scrapy应该如何做-浅析分布式

我们先了解一下分布式,以下的内容在很早之前分享在一个爬虫群里面,现在拿出来重新回顾一下。 大家面试或者聊天的时候,装逼都会问,分布式,你会吗?那什么是分布式,为什么要分布式,怎么样实现分布式,我们先从逻辑上思考这三个问题 是什么 为什么 怎么样 啥是分布式 分布式说白了,就是你是一个有钱的地……

阅读全文

[python代码生成器]jinja2模板引擎下的代码生成器

当慢慢了解做一些重复性的工作时候,我们都会思考,有没有什么办法简化工作,人因为懒洗衣服,所以有洗衣机,因为懒打扫,所以洗尘器,洗碗机,程序员们的懒,更多的是简化工作和抽象上,比如某个动作能不能封装成函数,进而封装成类,或者包,这样的懒才会有进步,才能将更多的时间放在一些值得关注的……

阅读全文

[读书]编写高质量的python程序的91个建议(3)

声明,这些读书笔记我都是跳跃性的去找对我项目有帮助的,有一些废话我就直接删除了,所以一般不会特定的保留顺序,如果需要参考原版,请参考书中的内容。 9.数据交换值的时候不推荐使用中间变量。 之前大家一般都会使用中间变量来交换值,现在推荐直接交互。比如 x,y = y,x 那我们更深入一点,为什么会快呢……

阅读全文

最近文章

分类

标签

友情链接

其它