自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 scrapy_redis 解决空跑问题,自动关闭爬虫

使用过scrapy_redis框架的人一定知道,scrapy redis 在没有requests的时候,会阻塞等待接收start_url,程序无法自动结束。那如何自动停止程序,结束空跑呢??? spider_idle 信号 scrapy.signals.spider_idle(spider)当spider进入空闲(idle)状态时该信号被发送。空闲意味着:requests正在等待被下载...

2018-08-14 21:24:15 2391 1

原创 Mac 配置iTerm2,安装rz/sz

这里写自定义目录标题前言安装rz/sz配置iTerm2前言一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地;与ssh有关的两个命令可以提供很方便的操作:sz:将选定的文件发送(send)到本地机器rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传...

2020-04-09 15:47:49 573

原创 rabbitmq 脑裂问题

rabbitmq 脑裂问题,实质上是个网络分区问题, 确切来说是网络不稳定导致的问题。rabbitmq集群的网络分区容错性不好,在网络比较差的情况下容易出错,最明显的就是脑裂问题了。记住 不要将你的rabbitmq集群建立在广域网上,除非你使用federation或者shovel等插件。所谓的脑裂问题,就是在多机集群中节点与节点之间失联,都认为对方出现故障,而自身裂变为独立的个体,各自为政,...

2019-06-23 14:21:52 5425

原创 Alpine 安装依赖包 总结

在Alpine,有的库安装需要相关依赖才能成功,这里整理记录一下。Alpine使用apk进行包管理,通过apk –help命令查看完整的包管理命令。RUN 命令针对的是dockerfile 语法。如果要安装Pillow 添加 RUN apk add --update --no-cache jpeg-dev zlib-dev 如果使用到了execjs 添加 RUN apk add -...

2019-06-12 15:46:06 5782

原创 将原始javascript对象转换为python字典

在抓取某些网站时,抓取到了javascript 对象,不符合Json 格式,不能使用json.loads 该如何处理?# fromjs_obj = '{x:1, y:2, z:3}'# topy_obj = {'x':1, 'y':2, 'z':3}demjsonpip install demjson 安装import demjson# fromjs_obj =...

2019-06-12 15:28:06 2621

原创 RabbitMq 雷区

不要触发流控机制关于内存报警在默认配置情况下,rabbitmq的使用内存超过机器内存的40%,会触发内存报警,同时阻塞所有发布消息的连接,一旦内存报警清除(如:消息被写入硬盘或者被消费者消费),服务就会恢复正常。默认内存阙值是机器内存的40%,但并不会阻止rabbitmq使用超过40%的内存,这仅仅是阻塞生产者。内存阙值可以通过vm_memory_high_watermark, 字段...

2019-05-31 15:20:19 539

原创 pyecharts 在地图上根据经纬度和量值,画出散点图/热力图

实现的功能: 将经纬度映射到地图上,查看每个经纬度附近的商家数量的分布情况。作图类型:地图+散点图,地图+热力图应用的类型: Geopy版本: python2+, pyhton3+pyecharts 文档:https://pyecharts.org/#/zh-cn/introECharts是一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器,底层...

2019-05-29 11:23:25 24271 20

原创 bloom filter应用场景

bloom filter 应用场景bloom filter 是空间效率极高的概率型算法和数据结构。用于判断一个元素是否存在一个集合(hashset)。对于一个元素检测是否存在的调用,BloomFilter会告诉调用者两个结果之一:可能存在或者一定不存在。应用场景:Google著名的分布式数据库Bigtable以及Hbase使用了布隆过滤器来查找不存在的行或列,以及减少磁盘查找...

2019-05-28 19:14:03 1423

原创 mongo 异步 读写分离

使用 AsyncIOMotorClient 异步库,进行读写分离。读:从数据库不停读数据存到队列,写: 从本地队列不停批量向数据库写数据。场景: 数据大的时候,你可以快速将A的数据导入到B中。可以提高数据插入效率,不必等待写完才读取下一批数据import asynciofrom custom_conf import MONGODB_URLfrom motor.motor_async...

2019-04-11 15:40:36 647

原创 获取requests http报文

在爬虫中,你发现你的模拟已经很完美了,但是还是拿不到预期数据。怎么办呢?你可以对比一下,网站的报文跟你爬虫发出去的报文是不是一致的。我们可以利用 httpbin 这个网站,先来看一下 requests 发出的 HTTP 报文默认的请求头是什么样子的。可以这样测试:import requestsurl = 'http://httpbin.org/get'r = requests.get ...

2019-04-03 16:46:48 1685

原创 代理测试,统计

统计代理重复率,测试代理import reimport requestsdef proxy_test(proxy): headers = { "User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1" ...

2019-03-26 15:39:03 214

原创 centos6.5安装python36

最近遇到个被阉割的很严重的centos 系统,使用python源码安装,在make的时候就报错,始终编译不通过,折腾好久,终决定换个比较优雅的姿势安装。使用SCL安装python3.6软件选集(Software Collections),又名 SCL。是由 CentOS SIG 维护的非严格意义上的CentOS软件库。它的宗旨是:在企业级 Linux 发行版使用期间,为比较老旧的软件,提供...

2019-03-18 18:50:58 910

原创 scrapy post请求 formdata/body传值问题

关于 scrapy post 提交一直有疑惑,不知道选用那种姿势。scrapy Post 发送数据是我们通常会用 yield scrapy.FormRequest( url = url, formdata = {"aaa" : "xxx", "bbb" : "xxxxx"},

2019-03-08 15:30:44 6883 1

原创 rabbitmq端口说明清空队列

rabbitmq 主要端口说明4369 – erlang发现口5672 --client端通信口15672 – 管理界面ui端口25672 – server间内部通信口我们连接RabbitMQ的话就要用client端通信口:rabbit_mq_url = amqp://guest:guest@localhost:5672/test我们访问RabbitMQ管理界面可以访问如下:ht...

2019-02-28 18:13:50 434

原创 Ubuntu python3+安装

最近拿到一台新的服务器,需要配置环境,做个笔记,以后方便使用。拿到一台新Linux服务器,先看看版本。我目前的Ubuntu16。执行命令,可列出所有版本信息 lsb_release -a安装需要的python 版本。系统默认python 2.7。ubuntu16 新增了python3.5的版本。有需要的就更新python版本,没有的请忽略。接下来,安装需要的python3.6 的版本。...

2019-01-09 16:59:48 491

原创 关于GIL的那些事情

GIL引发的思考关于GIL首先需要明确的一点是GIL并不是Python的特性,接下来我也不解释什么是GIL,自行查阅资料 Python语言和GIL没有半毛钱关系。仅仅是由于历史原因在Cpython虚拟机(解释器),难以移除GIL。1.并发和并行这个问题缘由于,多线程在GIL下不能实现并行。那么什么是并发,什么是并行。 1.并发:交替处理多个任务的能力。这么说,你在做事件A,当更紧急...

2018-08-09 20:56:13 152

原创 用户线程和内核线程

为什么多线程会用到多核复习一下线程和进程的区别: 最主要的点就是:进程是资源分配的最小单位,线程是CPU调度的最小单位。(一个是相当于一个容器,一个是具体被CPU操作的) 进程间资源不共享,而多个线程是共享同个进程分配的资源的。 由于线程分用户线程和内核线程。内核线程再调用的时候可以去不同的核心去操作。所以多线程是可以利用到多核的。Python 为什么IO密集型程序要使用多线程...

2018-08-09 19:19:50 236

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除