从爬图虫入手学习多线程实战
《从爬虫入手学习多线程 原理分析部分》里我们对Python的多线程原理进行了分析,这次我们就直接拿一个爬虫脚本来进行实践。 上一篇的传送门: PORTAL 阅读这篇文章需要的知识基础: Python多线程,爬虫基础 requests库的基础方法 os库的基础方法和二进制文件写入方式 re库基础方法 正则匹配基础原理 time库基础方法 一.爬虫原理简单分析我们现在大多数用的网络爬虫都基于第三方的requests库,经过测试,这个的确比原装的urllib库要快一点点(再说我也习惯了)。 爬虫的获取页面行为就类似于我们平常打开浏览器访问网页的行为:触发请求->发请求包给服务器->服务器返回包(简单来讲就是这个步骤,实际上更复杂)。 但爬虫和浏览器的不同点就在于:浏览器会把服务器的返回包解析成我们能看懂的正常的网页,而爬虫只是单纯的接收数据包。 我们可以通过代码提取出服务器返回包内我们需要的信息,对其进行各种我们需要的操作(比如下载,和格式化数据保存)。 总体来说,一个简单的爬虫由以下几个方面构成: 123451. 请求器,用于向目标服务器请求并返回数据包。2. 数据筛选器, ...
从爬图虫入手学习多线程(原理分析)
学Python不写爬虫和咸鱼有什么区别!!!!by:Noob_宅 阅读此篇文章需具备的知识基础:Python基础(最少要学习过基础教程,能读懂代码),入门级的数据结构基础(知道队列的概念即可)。最好学过C语言,了解一些CPU的工作原理。 当然,如果后三者不太了解的话也不是不行,我会尽量在文中以简明易懂的方式解释,了解的可以跳过解释部分。 一.前言之前曾经拿别人的脚本学习了一下网络爬图虫怎么写,但是写好后运行起来一直嫌慢。这两天正巧有空学了一下Python多线程,感觉Python的多线程特别适合爬虫这种IO密集型的操作。 所谓的IO就是input和output,输入和输出。或者称为读写,总之就是对数据流的操作。 (这里我们摘取廖雪峰老师的教程中的一段来解释一下IO密集型和计算密集型: https://www.liaoxuefeng.com/wiki/1016959663602400/1017631469467456 计算密集型 vs. IO密集型 是否采用多任务的第二个考虑是任务的类型。我们可以把任务分为计算密集型和IO密集型。 计算密集型任务的特点是要进行大量的计算,消耗CPU ...
Frp内网穿透
随着工具越来越多,越发感觉电脑内存不够用,但是又没办法加内存,更不可能天天背一个台式机跑来跑去(十多公斤的玩意会死人的啊!!!!!!),所以决定直接把要用到的虚拟机全部放在台式机上,然后内网穿透出去直接远程搞,想想真舒服!!! Frp介绍frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 为什么使用Frp通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括: 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。 代理组间的负载均衡。 端口复用,多个服务通过同一个服务端端口暴露。 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。 服务端和客户端 UI 页面。 ...
和广告的抗争
此篇为之前的博客搬运。 好久没发文了,今天来除除草。 我想大家都被那些购物广告还有网页弹窗烦死了吧。那种开电脑就给你弹很多的什么每日新闻啦,今日头条啦,系兄弟就来刚我啦,以及某360的开机广告……真是一点营养都没有。 一般来说,广告都来自于无良软件,@某360。但往往一些我们经常使用的软件也有广告,毕竟大家要恰饭的嘛,于是我们也就每天继续和弹窗广告斗智斗勇。 可是根据我的观察,我发现绝大多数人在广告出现时只是点了叉叉,没错,绝大多数都是。 日常生活中我们经常见到广告的地方无非也就电脑和手机,而对于笔者这些拿电脑当吃饭家伙的人来说,使用最多的场景肯定还是电脑。那我就先从电脑上的广告过滤开始说吧。 不得不说,现在做广告的技术也是真的厉害,前段时间在别人电脑上见了一条游来游去的锦鲤,笑死我了。 一般来说,比较有良心的广告一般会在右上角显示可以设置永久不弹。但是我只想说,你在我的电脑上弹广告就是原罪。 其实想拦截这种广告很简单,但是你需要一个足够好用的弹窗拦截器。如果你正巧用的是 腾讯电脑管家 的话,那就很简单了。只需三步就能让电脑桌面上的弹窗显著减少。 电脑系统弹窗 打开工具箱 选择 ...
DVWA解决Illegal mix of collations for operation 'UNION'问题
Keywords:DVWA,Illegal mix of collations for operation ‘UNION’ 今天同学在做作业的时候遇到了这个问题过来请教我。 之前在学习的时候没遇到过这个问题(2018年的时候我学的DVWA,后来上网查资料的时候发现这个问题在2019年下旬才开始出现,应该和PHPstudy的更新有关系,之前我用的是老版本PHPstudy一切正常,现在用新的之后也遇到了这个问题)。 本来以为很快就能解决的,结果用了一个多小时才解决掉。大多数的时间都花在了找资料还有和命令行较劲上了,后来发现命令行实在是有问题(修改过之后的值就是死活不能保存)。在github上下载的最新版本代码也不行,故决定直接自己修改DVWA的源码,反正又不是看不懂,淦。 下面是修改办法: 打开DVWA安装目录里的MySQL.php文件。 一般都是WWW目录,不过我自己设置为Demo目录了,不必在意。 如图所示,在$create_db这个变量的赋值语句里加上一小段 COLLATE utf8_general_ci 一定要注意空格,在 } 和COLLATE之间有一个空格, ...
HEXO+GitHubpage+部署优化过程记录
背景咕咕咕了好久之后终于开始继续进行学习,之前的博客已经很久没有维护了,而且也是和别人一起搭建的,虽然是轻松了一点,但是上传个文章很不方便,而且后台我也懒得进,最后还是决定自己搭建一个博客。问题是,手头没有主机,没有域名,更莫得钱,幸好有大佬告诉我可以用HEXO+GitHubpage白嫖,遂决定研究。 所需条件 有一台自己的PC,Windows、Linux、Mac均可。 有自己的域名或者能嫖来一个子域名。(白嫖真香 会用MarkDown语法(不会用就去学啊),自己有时间折腾。 推荐文章部署:官方文档:https://hexo.io/zh-cn/docs/ 博客: 博客1 博客2 理论上来说,根据这两篇博客配置就没有什么问题,想要研究更多东西请参考官方文档。 tips: 在安装npm之后可以参考博客3,先进行npm的速度优化,不然安装过程会长到你怀疑人生。 如果你对GitHub的使用不是那么熟练,那么你可以在创建仓库时参考博客2的创建过程。但是要注意的是博客2在创建仓库时有一些小的错误(详情见博客2的评论,博主在评论里指出了修改办法),这一步可以参考博客1的做法,这里我也贴上我最 ...