pspyder新闻爬虫,是一个新闻采集类应用,能够自动模拟登录并采集网站上的新闻内容,将新闻加工后,同步到生产库。
- 通过伪造cookie,模拟单点登录认证
- 新闻列表、新闻正文内页面采集
- 支持代理服务器
- HTML文本CSS样式调整,适配手机屏幕
- HTML文本中图片转存并替换URL
- 支持上传至FastDFS分布式文件系统
- 采集结果导入生产库
- 日志打印
- requests - 更为人性化的网络连接库
- BeautifulSoup - HTML数据的解析库
- fdfs_client-py - FastDFS客户端
大部分依赖直接使用pip3安装即可
sudo apt-get install python3-pip
sudo pip3 install requests
sudo pip3 install beautifulsoup4
sudo pip3 install mysql-connector
注意: fdfs_client-py不能直接使用pip3安装,需要直接使用一个python3版的源码,并手工修改其中代码。操作过程如下:
git clone https://github.com/jefforeilly/fdfs_client-py.git
cd dfs_client-py
vi ./fdfs_client/storage_client.py
将第12行 from fdfs_client.sendfile import * 注释掉
python3 setup.py install
sudo pip3 install mutagen
CREATE TABLE `material_prepare` (
`id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`news_cid` varchar(64) NOT NULL COMMENT '云门户新闻ID',
`news_oid` varchar(64) DEFAULT NULL COMMENT '掌沃行中新闻ID',
`title` varchar(64) NOT NULL DEFAULT '' COMMENT '标题',
`author` varchar(100) NOT NULL COMMENT '作者',
`summary` varchar(120) DEFAULT NULL COMMENT '摘要',
`content` text NOT NULL COMMENT '内容',
`add_time` timestamp NULL DEFAULT NULL COMMENT '新增时间',
`status` varchar(1) DEFAULT NULL COMMENT '状态 0:草稿 1:正文',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=102 DEFAULT CHARSET=utf8;
crontab -e
0 16 * * * /home/pyapp/pspider/pspider.py
export http_proxy="http://xxx.xxx.xxx.xxx:31081"
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar -zxcf Python-3.6.0.tgz
./configure
make && make install
alias pip3="pip3 --proxy xxx.xxx.xxx.xxx:31081"