开发爬虫过程中遇到过非常头痛的问题就是编码问题,如果编码使用不正确最后保存下来的文本就会有问题。在开发过程中,我们可能会遇到各种编码比如ios8859-1,Windows-1252,GBK,GB2313,GB18030等。首先让我们看看如果使用错误的编码解码下载的内容会发生什么情况吧。注意,即使都是乱码,使用不同错误的错误编码解码的效果特征也是不同的。
Read more
技术
快速分辨静态页面和动态页面
静态网页是标准的 HTML 文件,通过 GET 请求方法可以直接获取,文件的扩展名是.html、.htm等,网面中可以包含文本、图像、声音、FLASH 动画、客户端脚本和其他插件程序等。静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的。静态并非静止不动,它也包含一些动画效果,这一点不要误解。这里我们需要强调的是静态和动态的区别,是页面内容的加载方式,并非展示方式。
我们知道,当网站信息量较大的时,网页的生成速度会降低,由于静态网页的内容相对固定,且不需要连接后台数据库,因此响应速度非常快。但静态网页更新比较麻烦,每次更新都需要重新加载整个网页。
使用iptables创建动态NAT转发规则开放内网服务
如果局域网中有多台服务器提供服务,但是只有一个公网IP地址,这时使用iptables可以创建动态Nat转发规则,在拥有公网IP地址的机器上提供服务。例如我在阿里云购买了4台云主机,属于同一个子网,内网可以互通。其中一台主机拥有一个公网IP可以访问,另外三台主机创建了一个MongoDB Cluster分片集群。如果需要在外网访问MongoDB集群服务的话,就需要在拥有公网IP的主机上创建Nat规则,将外网来的访问转发到内网主机上。
以下是一个公网IP的Nat转发拓扑图:
爬虫平台模板任务开发流程
模板开发人员接收到任务以后,可以按照以下流程进行开发:
Read more
使用iptables查看和创建访问规则
由于云服务器IP访问策略配置有限制,手动对单个IP设置访问策略过于繁琐。例如,要对50个IP一对一的设置访问策略,并且这50个IP不是在一个网段内,就只能手动一条一条加,非常麻烦。因此决定使用IPTables在系统内部设置规则,在云配置页面做比较粗力度的IP访问策略设置。顺便学习一下IPTables设置的一些要点,并记录下来。
Read more
微信pc端逆向之自动接收消息(无消息冲突)
之前写过几篇使用OllyDbg进行逆向工程,并使用Frida编写HOOK注入程序的教程。后来有朋友寻求帮住,看看能不能帮忙做一个微信逆向的学习课程。由于这个涉及到一些法律风险,感觉不是很靠谱,因此并没有出这个学习课程。不过还是在网上找到了两篇比较有意思的文章。接下来通过分析这两篇文章中的逆向过程,比较一下两种方法的优劣,并探讨一下是否还有更优的方案。
Read more
开启MongoDB Cluster分片集群身份认证
默认情况下MongoDB集群的身份认证是关闭的,因此存在非常大的安全风险。在正常情况下不同用户有不同的访问权限,即使是MongoDB分片集群也不例外。相对于单节点MongoDB服务来说,开启MongoDB Cluster分片集群身份认证要负责的多。MongoDB官方手册给出了非常详细的操作步骤,本文的重点主要覆盖在如何开启一个已经上线的MongoDB Shard分片集群身份认证。由于MongoDB Cluster分片集群由3大部分组成(Shard副本集、Config副本集、Mongos路由),因此需要分别配置内部身份认证。
Read more
搭建高可用Kafka集群
消息队列目前是实现系统异步处理的成熟中间件。消息由生产者创建并推送至消息队列,由消息队列缓存,最后由消费者消费。Kafka作为消息队列中间件中应用非常广泛的一款产品,能够有效地分离生产者和消费者之间紧耦合的关系,并且实现了生产者和消费者独立伸缩的能力。因此,搭建一套高可用的Kafka集群将是系统中非常重要的一个环节。
Read more
MongoDB Cluster分片集群问题集合
由于数据量不断增加,以前用的是单节点的MongoDB数据库已经无法满足日益增长的数据存储要求。无论是硬盘存储空间还是查询速度都出现了瓶颈,因此我决定组建一个MongoDB分片集群。具体的组建方案可以参考《从零搭建MongoDB Cluster分片集群》。搭建完成以后,就需要把单台节点的数据导入新的MongoDB集群中。MongoDB数据迁移有很多工具,其中包括mongodump、mongoexport、mongoimport。由于数据迁移需要时间,并且目前还无法确定MongoDB集群的稳定性,同时还要保证线上任务的正常工作。因此,本次数据迁移的方式是自己编写一个脚本,从旧库中读循环读出一批数据然后在写入新的集群中。在数据迁移的过程中,的确发现了很多问题。
Read more
MongoDB Cluster分片集群配置文件
之前在《从零搭建MongoDB Cluster分片集群》这篇文章中我详细讨论的如何一步一步地建立MongoDB Cluster集群。所有的服务都是通过命令行或者参数的方式配置启动。本文将记录如何使用配置文件的方式启动MongoDB分片节点、配置服务器和Mongos路由服务器。注意,以下各节点配置信息和前文中命令行启动的参数相对比会容易理解很多。
Read more