CentOS无桌面环境部署Selenium+Firefox

桌面环境使用Selenium默认会打开浏览器界面,但是如果要部署在无桌面环境的服务器环境,使用普通方法没法运行Selenium。

在服务器环境安装Gnome或者其他桌面环境,比较占用资源。

可以通过安装虚拟桌面环境解决这个问题。

Xvfb(X virtual framebuffer)是一个虚拟显示服务器,不需要显示设备也能模拟运行图形界面。

阅读全文

AES加密原理及Python实例代码

AES(Advanced Encryption Standard)是一种对称密钥加密算法,即双方使用同一段密码对数据进行加解密操作。
AES的分块区组长度必须是128 bit,密钥长度可以是128 bit,192 bit或256 bit,分别称为“AES-128”、“AES-192”、“AES-256”。 加密过程中使用的密钥是由Rijndael密钥生成方案产生。

阅读全文

Python logging同时输出到屏幕和文件

最简单的logging使用方法:

1
2
3
4
5
6
7
8
import logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s: - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
level=logging.DEBUG)
logging.debug('debug msg')
logging.info('info msg')

阅读全文

自己搭建亿级爬虫IP代理池

做爬虫抓取时,我们经常会碰到网站针对IP地址封锁的反爬虫策略。但只要有大量可用的IP资源,问题自然迎刃而解。

以前尝试过自己抓取网络上免费代理IP来搭建代理池,可免费IP质量参差不齐,不仅资源少、速度慢,而且失效快,满足不了快速密集抓取的需求。

收费代理提供的代理资源质量明显提升,最终选定使用站大爷作为代理提供平台。

阅读全文

Squid 配置高匿代理

之前简单介绍过 Squid 搭建正向代理服务器,但是这种方式搭建的代理服务器仅为普通代理,目标网站依然能检测到我们的真实ip,实际的爬虫业务中我们需要的是高匿代理,隐藏爬虫的真实ip。

阅读全文

Squid 搭建正向代理服务器

Squid 是一款缓存代理服务器软件,广泛用于网站的负载均衡架构中,常见的缓存服务器还有varnish、ATS等。

正向代理服务器可满足内网仅有一台服务器可以上网,而要供内网所有机器上网的需求,也可以用于爬虫的代理访问。在实践中我将Squid作为爬虫代理服务器,实现了多IP切换的功能,将在后续文章中记录实现过程。

阅读全文

Flask 项目结构实例

Flask是一款轻量级的Python Web框架,相比于Django,其更适合于快速开发产品原型,只需要很少的代码量就可以构建一个Web项目。

在实践经验中碰到过很多问题踩过不少坑,在此总结记录一个可用的项目结构实例。

安装

一般而言,推荐每个项目都构建虚拟环境,因为同一台服务器可能运行多个不同的项目,每个项目需要的包版本可能不同,有潜在的兼容性问题。

阅读全文