- 博客(24)
- 收藏
- 关注
原创 只因把 https 改成 http,带宽减少了 70%!
文章探讨了一个高并发采集服务上线后,100M上行带宽被迅速打满的问题。通过抓包分析,发现TLS Handshake占用了大量带宽,导致单个GET请求大小达到1.68KB。文章解释了TLS Handshake的过程及其对带宽和CPU资源的消耗,并提出了两种解决方案:一是使用HTTP协议,省去TLS Handshake,验证后请求大小减少70%;二是使用Keep-Alive机制,减少重复的TLS Handshake。文章还提醒了Keep-Alive的超时问题,并建议在非必须使用HTTPS的场景下优先使用HTTP
2025-05-10 17:31:37
291
原创 [特殊字符]Meilisearch:AI驱动的现代搜索引擎
Meilisearch是一款轻量级、开源的AI搜索引擎,专为开发者设计,提供快速、高效的搜索体验。它由Rust语言编写,具有低资源消耗和高性能的特点。与Elasticsearch相比,Meilisearch在易用性、资源消耗和搜索体验方面表现出显著优势,如快速安装、低内存需求、内置拼写容错和多语言支持等。其智能排序算法、语义理解能力和自适应学习系统使其成为“AI搜索引擎”,能够自动优化搜索结果,减少开发者配置时间。Meilisearch适用于多种场景,尤其是电子商务网站,能显著提升搜索转化率和响应速度。通过
2025-05-10 16:27:49
460
原创 Elasticsearch太重?它的超轻量的替代品找到了!
Manticore Search 是一款开源搜索数据库,起源于 Sphinx Search 引擎,经过大量改进和重构,成为现代、快速、轻量级的全文搜索工具。其核心优势在于速度、灵活性和完全开源特性,采用 C++ 编写,支持多存储选项,资源消耗低,性能优于 Elasticsearch。Manticore Search 提供 SQL 支持、列式存储、实时索引、向量搜索等功能,并兼容 ELK 技术栈,便于从 Elasticsearch 迁移。安装方法多样,支持 Linux、macOS 和 Windows 等平台,
2025-05-09 20:08:54
498
原创 更优雅的解析复杂字典!使用jmespath避免KeyError异常
在处理Python中的多层嵌套字典时,直接访问不存在的字段可能导致KeyError或TypeError。为了更安全地处理这种情况,可以使用jmespath库。jmespath允许通过查询表达式访问嵌套字典中的字段,如果字段不存在,则返回None,避免抛出异常。此外,可以通过or操作符为缺失字段提供默认值,使代码更加健壮。虽然jmespath在性能上略逊于直接解析,但在需要快速开发且对性能要求不高的场景中,它提供了一种优雅且安全的解决方案。
2025-05-09 00:21:31
163
原创 为了摸鱼和吃瓜,我开发了一个网站
本文介绍了一个聚合全网主流平台热搜的网站,旨在为用户提供便捷的热点信息浏览体验。该网站的两大特色是:为热搜列表增加配图,提升浏览的轻松感和沉浸感;支持查看当天全部热搜,满足用户对热点信息的全面需求。该网站适合普通用户、媒体从业者、营销人员和研究人员使用,分别用于快速查看热点、监测舆论动向、调整营销策略和分析平台特性。通过这个网站,用户可以更高效地获取和利用全网热点信息。
2025-05-09 00:15:01
2823
7
原创 这么好用的离线OCR项目,我要摁头安利给你!
爬虫遇到了验证码无法识别?PDF 里的扫描文档让你无从下手?公司的有 OCR 需求但又不想花钱?写论文就想 抄参考 一段,但文库下载都要收费?不用担心这些了!来吧朋友,这款适合人类食用的离线中文 OCR 项目解决你所有的烦恼!今天的主角就是这款在 github 上开源的项目:TrWebOCR介绍项目是基于开源离线 OCR 项目 Tr构建的,解决了 Tr 不支持并发的问题,并且...
2020-05-06 23:28:56
3437
1
原创 提高爬虫开发效率的几个小工具
前言一般开发爬虫的时候,最心烦的不是它的反爬有多复杂,而是它的参数贼多,要一个个的复制进去。所以自己写了一个小工具,把抓包抓到的 header、data、cookie 这些参数转换成 python 代码。大大的提高开发效率,其实代码之前已经开源了,不过用起来不太方便,于是最近就把它弄到了线上,用起来方便多了。涉及到的工具或技术Python 3.7Fiddler v5.0Charle...
2020-04-27 19:23:16
373
原创 谈谈我用在vue-cli3中预渲染遇到的坑
前言在开发自己的个人网站的时候后,选择了用vue来开发,不可避免的遇到要对seo做优化。鉴于目前页面也不多,因此首先采用的是预渲染的方式。本来以为把插件一装,配置一配,咔咔咔就能搞定,结果发现并没有想的那么简单。因为首先就遇到了两个报错,折腾了半个晚上。问题及解决方案第一个报错:Unable to prerender all routes!这个问题是在设置好配置之后,build的时候...
2020-04-22 11:52:50
1398
原创 django上线报ImproperlyConfigured:has multiple filesystem locations错误
今天在上线的时候uwsgi启动报错:django.core.exceptions.ImproperlyConfigured: The app module <module 'g32a' (namespace)> has multiple filesystem locations并且访问页面时出现Internal Server Error的错误。经过检查后发现是在g32aapp...
2020-03-19 17:02:12
608
原创 排序算法系列——快速排序
什么是快速排序?快速排序,顾名思义它排序的速度十分的快。它快到什么程度呢?C语言标准库中的qsort函数就是使用快速排序实现的!说到快速排序,离不开两个重要的概念: 递归 和 分治算法(Divide ans conquer, D&C)。如果要讲清楚这两个概念,可以单独写两篇文章出来了。因此这里不做深入,只简单介绍一下:递归:重复调用自己的函数。一般由两个部分组成基线条件 和...
2019-12-10 23:12:49
228
原创 排序算法系列——冒泡排序
冒泡排序是是一种比较基础简单的算法。它的原理是通过对比前后的元素大小,将较大的数换到后面的方式来实现排序 。排序过程举个例子:假如现在有一个无序数组disorder_arr = [4,2,19,10,-1]。第一步:取第0个元素4,和第1个元素2对比,发现4比2大。第二步:交换4与2的索引。即第0个元素为2,第1个元素为4,disorder_arr =[2,4,19,10,-1...
2019-12-05 14:51:35
232
原创 排序算法系列——选择排序
什么是选择排序选择排序可以说是众多排序算法中,最基础、最直观的一个算法了。它的思想十分简单:遍历列表,找出最小的一个数,记下索引将最小的数添加到新的列表中,同时删除原数组中的数重复第一步排序过程举个例子:假如现在有一个无序数组disorder_arr = [4,2,19,10,-1],和一个空数组order_arr = []第一步: 遍历数组 找到disorder...
2019-12-03 12:34:13
262
原创 用Python在Excel里画出蒙娜丽莎
之前看到过很多头条,说哪国某人坚持了多少年自学使用 excel 画画,效果十分惊艳。对于他们的耐心我十分敬佩。但是作为一个程序员,自然也得挑战一下自己。这种需求,我们十分钟就可以完成!基本思路实现这个需求的基本思路是读取这张图片每一个像素的色彩值,然后给 excel 里的每一个单元格填充上颜色。所以主要用到的是PIL、openpyxl这两个库。PIL 使用PIL是 Python...
2019-11-26 23:08:29
836
1
原创 Django配置优化方法
一、使用多个setting文件 开发Django项目是最常见,也是最麻烦的一个问题就是如何区分开发配置与线上配置。有一些解决方案是利用配置文件是py文件这个特性,在配置里面写一些if-else来达到区分线上配置与开发配置的目的。但是当项目较为复杂的时候,这样写的可读性十分差,而且可能产生一些条件判定的BUG。 所以更加推荐的方法是使用多个配置文件。 例如新建一个Django项目的...
2019-11-17 13:22:33
346
原创 几种你可能不知道的Python装饰器使用姿势
在Python中,装饰器是一种十分强大并且好用的语法,一些重复的代码使用装饰器语法的话能够使代码更容易理解及阅读。因此在这里简单总结了一下Python中装饰器的几种用法以及需要注意的事情。一、在装饰器中获取被装饰函数的参数假设我们在开发web的时候,需要做反爬。要判断接口的访问来源我们就可以通过下面装饰器的方法来实现:def mydecorator(func): def wrapp...
2019-10-23 22:57:23
202
原创 CentOS 7 安装 Tesseract-OCR4.1
1. 安装依赖的leptonica库建议使用 su root 切换到root用户下安装,避免编译过程中的权限不足问题wget http://www.leptonica.org/source/leptonica-1.78.0.tar.gztar -xzvf leptonica-1.78.0.tar.gzcd leptonica-1.78.0./configuremake &&am...
2019-09-10 17:03:11
3066
1
原创 【优化】py2下hbase的字符串编码问题(\\xe7\\xbc\\x96)
引言上次写过一篇关于 py2下hbase的字符串编码问题(\xe7\xbc\x96) 的文章,里面的解决方案是正则来进行转换,是一个有点傻但目前又无可奈何的解决方案,并且在最后留下了三个小坑。本以为应该可以稳定的使用一段时间,没想到才过几天就掉坑里了。=_=!!所以这次就开始填坑了吧!!修改后的代码talk is cheap ,show me the code!废话不多说,直接上代...
2019-01-08 23:29:25
376
原创 三个小工具,大幅提高爬虫开发速度
引言我们在进行爬虫开发的时候,fildder是一个必不可少的神器。尤其是现在大型网站的反爬越来越难处理,经常会花费我们大量的时间来找到哪些参数是必须的。因此如果能够快速的将fildder抓到的包里面的参数转换成python可用的格式,那么无疑可以极大的提高我们的开发效率。因此我写了小工具,主要目的是为了快速的将fildder里抓到的header,data,cookie转换成requests,s...
2019-01-07 22:33:08
328
原创 py2下hbase的字符串编码问题(\\xe7\\xbc\\x96)
py2下hbase的字符串编码问题(\xe7\xbc\x96)最近在py2的环境下使用hbase,遇到了一个令人恼火的编码问题。问题字符串如下:'\\XE6\\X89\\X80\\XE8\\XB0\\X93\\XE7\\X89\\XB9\\XE6\\XAE\\X8A\\XE5\\XAD\\X97\\XE7\\XAC\\XA6\\XEF\\XBC\\X8C\\XE5\\XB0\\XB1\\XE6...
2018-11-25 20:59:27
862
原创 【list切片】简解python切片取值
导语众所周知,在python里面,切片是一个极其好用的语法,可是许多新上手的pythoner,在它的取值这里会比较蒙,许多教程讲解是十分详细,但不够简洁,因此这里整理了一份简洁的,专供人类阅读的切片介绍。正文那么闲言少叙,这里就来举个栗子: arr = ['a','b','c','d']这里有一个arr的数组,首先我们明确的知道,在正序下a的索引为0,d的索引为3;倒序下,a...
2018-10-24 22:26:19
1356
原创 【selenium】使用无界面的firefox,chrome
开始语最近心血来潮,将selenium升级了一下,发现在使用phantomJS的时候,console的输出跟之前有些不一样。待我细心观瞧之后发现在第一行,会有一个以前没有的输出,就是:UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome ...
2018-10-03 14:02:16
2640
2
原创 【selenium】webdriver的安装配置(附:可能最全的下载地址)
我们在写爬虫的时候,偶尔会遇到一些内容是通过js获取,或者加密等一些情况,那么这种情况就必须要祭出大杀器了——selenium。严格来讲,selenium是一个自动化测试的工具,不过用来做爬虫也是极好的。它可以获取到js加载后的页面,从而拿到直接请求拿不到的东西,实现“所见即所得”。所谓“工欲善其事,必先利其器”。使用selenium最重要的是要先安装好浏览器的驱动,这样selenium才可以...
2018-10-03 10:14:06
16946
1
原创 python爬虫中一个str类型的unicode字符串转成中文的问题
本文主要介绍部分爬虫在遇到%u5317%u4eac%u70e4%u9e2d这种类似unicode编码的str类型数据时,无法直接使用decode('unicode-escape')方法来转成中文的时候,一个转码的解决方案,以及这个方案的思路!今天在爬一个网站的时候,遇到了一个网站,它的一些数据是通过ajax加载进来的一段json,它的value部分的内容是像下面这样子的:%20%20%20...
2018-09-29 11:36:58
4177
3
原创 scrapy使用随机User-Agent
scrapy使用随机User-Agent众所周知,User-Agent值是用来帮助服务器识别用户使用的操作系统、浏览器、浏览器版本等等信息的,因此也常被用来检测爬虫。许多网站会ban掉来自爬虫的请求,来达到反爬的目的。正常浏览器的User-Agent值为:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 F...
2018-09-18 01:57:43
566
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人