Python

理解Queue队列中join()与task_done()的关系

在网上大多关于join()与task_done()的结束原话是这样的: Queue.task_done() 在完成一项工作之后,Queue.task_done()函数向任务已经完成的队列发送一个信号 Queue.join() 实际上意味着等到队列为空,再执行别的操作 但是可能很多人还是不太理解,这里以我自己的理解来阐述这两者的关联。 理解 如果线程里…继续阅读 »
WEB开发

Mysql ibdata1文件瘦身与清理方法

终究,我还是从innodb转到了myisam,光innodb库的大小就够我受的,更别说查询速度了。 但是我遇到了一个问题,从innodb转到myisam很快就能完成,ibdata1文件还是那么大,有27G。 嗯,可以理解,可能因为我的库还在。 但是当我删除一个大库的时候瞬间就完成了,那一瞬间我就感觉不妙,几百万的数据…继续阅读 »
Python

Mysql数据迁移启动报错:/mysqld: File './mysql-bin.000007' not found

此贴为备忘帖: 背景:将mysql 的var目录数据全部迁移至另一mysql服务器,权限正常的情况下 无法启动mysql,报错:  ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists 查看var下的localhost.localdomain.err日志,报错为: 170322 14:47:52 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var 170322 …继续阅读 »
Python

Python requests响应内容乱码解决方案

一般在针对性的爬取某个网站的时候可能不需要考虑太多这方面问题,因为一个网站的编码基本是固定的,但是当需要去请求大量编码各不相同的网站时,自动解码就显得尤为重要。 这几天在用requests模块扫描大量网站首页的时候发现有大量的乱码,我们都知道requests中的encoding属性是可以自动识别网…继续阅读 »
Python

Python 获取顶级域名模块ExtractLevelDomain[自定义等级]

这个模块在很多爬虫项目里应该还是挺实用的,不过我是用来批量查询whois和备案单位的,因为库里有大量的子域名,所以只需要对同顶级域名的其中一个域名获取信息即可,否则会造成数据库大量冗余信息,而且在后期更新的时候还会造成系统及网络不必要的压力。 找了这么个提取顶级域名的模…继续阅读 »
Python

Python whois查询模块完美版【基于Linux whois】

全网域名扫描项目还在进行中,之前想的很简单的whois提取本以为很简单,看了下linux下whois出来的结果格式很多都不一样,自己写的话是比较麻烦的。 在线接口的话找了很多,还是只有站长之家最靠谱,但是由于量很大,而且又有请求限制,还是决定再找找whois的轮子,找了两个,一个很烂,.cn  .com…继续阅读 »
Python

Python selenium+PhantomJS实现爬取动态JS[自定义header]

爬取js的必要性在这里就不必多说了,也就是直接请求html并不会返回js所加载的数据,只有经过浏览器渲染后才回出现数据,比如在http://s.tool.chinaz.com/same 查询出的数据是经过js加载的(一方面为了数据不会被搜索引擎爬取,另一方面降低服务器并发负载)。 这种情况python一般可以用PhantomJS实现,这个工具…继续阅读 »
PHP

PHP实现字符编码互转[ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom]

最近在做工具的时候遇到读取两个文件编码不一致的情况,但实际情况并不是用iconv转换就可以的那么简单,因为其中一个编码是ANSI,另一个是Unicode big endian,这时候用函数mb_detect_encoding 都识别不了编码,更别想用几个函数就能简单转换了。 不过google到了一个不错的php类,引入即可。  <?php /…继续阅读 »
PHP

浅析一句话后门中eval与assert执行条件与原理

eval与assert都算是元老级一句话后门函数,其实很多情形下代码的执行还是需要依靠eval去执行,只是前锋路转了而已。 eval与assert函数的用法大家可以自行百度。 eval与assert区别 eval函数中参数是字符,如: eval('echo 1;'); assert函数中参数为表达式 (或者为函数),如: assert(phpinfo()) assert(eval('ec…继续阅读 »
WEB开发

js实现gbk格式的urlencode编码

至于为什么需要用到这个东西,你可能已经很清楚,如果不清楚可以参考: URL中文编码与服务器上文件储存编码不一致导致404解决方案 nginx服务器中文url无法访问导致404报错临时方案 使用方法 附件中有两个js, 第一个gbk.js使用方法   <script src="gbk.js"></script>   <script> …继续阅读 »