开发爬虫最基本的技能就是通过xPath定位获取数据,无论是Beautiful Soup还是Lxml这些包,通过xpath定位数据节点并提取数据都是非常高效且方便的。除了xPath以外,也可以使用正则表达式进行数据提取,但是在表达式的编写上要复杂许多。
Read more在Docker环境中工作
使用Docker可以很方便的进行开发和测试环境搭建。之前读了一篇文章《Docker Tips for Beginners》,大致了解了在什么环境下安装什么Docker应用。因为使用Docker Desktop可能会发生许可证问题(你在大公司工作的话,也说不清楚到底是个人使用,还是商业化使用),所以我的整个Docker环境是使用VirtualBox虚拟机,Centos7和Docker CE组建的。(VMWare的Workstation Player也会有许可证问题,VirtualBox Extension Pack也会有许可证问题,建议不要安装)
Read morenode-gyp编译安装与Python版本
在使用yarn或者npm安装js包的过程中,常有需要使用node-gyp重新编译的情况,并且每次遇到这种情况,大多与python相关。我不是专业前端开发,所以对于node-gyp具体在node中扮演什么角色不是特别清楚,但是每次node-gyp编译出现问题都与python的版本相关。
Read moreFlink意外关闭的2种情况
今天突然发现无法访问Flink的Web界面了。这个Flink系统是用了一台主机使用Stand alone方式部署的。因此使用Bitvise ssh client登录到远程服务器,查看Flink的日志。这里需要注意的是在Flink系统的log文件夹中有两类日志,一类是文件名中包含了standalonesession的Job Manager日志,一类是文件名中包含了taskexecutor的Task Manager日志。关于Flink系统的,我们主要看standalonesession日志。
Read moreExcel函数VLOOKUP和ISNA使用技巧
对于程序员来说,遇到需要数据处理的情况,首先想到写代码实现。其实如果熟悉Excel的一些公式的话,可以非常方便的使用这些公式实现。最近就遇到一个问题,里面涉及到在Excel表中查找数据,并判断该数据对应字段的值,并更新回源数据。简单来说如果要使用代码实现的话,大概要写读Excel文件、for循环、判断、更新源数据字典、最后写回Excel文件。但是如果使用Excel中的固定函数,就特别简单。大致用到IF、ISNA、VLOOKUP三个函数。 Read more
开发爬虫过程中遇到的乱码问题
开发爬虫过程中遇到过非常头痛的问题就是编码问题,如果编码使用不正确最后保存下来的文本就会有问题。在开发过程中,我们可能会遇到各种编码比如ios8859-1,Windows-1252,GBK,GB2313,GB18030等。首先让我们看看如果使用错误的编码解码下载的内容会发生什么情况吧。注意,即使都是乱码,使用不同错误的错误编码解码的效果特征也是不同的。
Read more
快速分辨静态页面和动态页面
静态网页是标准的 HTML 文件,通过 GET 请求方法可以直接获取,文件的扩展名是.html、.htm等,网面中可以包含文本、图像、声音、FLASH 动画、客户端脚本和其他插件程序等。静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的。静态并非静止不动,它也包含一些动画效果,这一点不要误解。这里我们需要强调的是静态和动态的区别,是页面内容的加载方式,并非展示方式。
我们知道,当网站信息量较大的时,网页的生成速度会降低,由于静态网页的内容相对固定,且不需要连接后台数据库,因此响应速度非常快。但静态网页更新比较麻烦,每次更新都需要重新加载整个网页。
Read more
使用iptables创建动态NAT转发规则开放内网服务
如果局域网中有多台服务器提供服务,但是只有一个公网IP地址,这时使用iptables可以创建动态Nat转发规则,在拥有公网IP地址的机器上提供服务。例如我在阿里云购买了4台云主机,属于同一个子网,内网可以互通。其中一台主机拥有一个公网IP可以访问,另外三台主机创建了一个MongoDB Cluster分片集群。如果需要在外网访问MongoDB集群服务的话,就需要在拥有公网IP的主机上创建Nat规则,将外网来的访问转发到内网主机上。
爬虫平台模板任务开发流程
模板开发人员接收到任务以后,可以按照以下流程进行开发:
Read more
使用iptables查看和创建访问规则
由于云服务器IP访问策略配置有限制,手动对单个IP设置访问策略过于繁琐。例如,要对50个IP一对一的设置访问策略,并且这50个IP不是在一个网段内,就只能手动一条一条加,非常麻烦。因此决定使用IPTables在系统内部设置规则,在云配置页面做比较粗力度的IP访问策略设置。顺便学习一下IPTables设置的一些要点,并记录下来。
Read more