您的位置:首页 > 运维架构 > Linux

linux下在服务器上配置scrapy框架的python爬虫,使用mysql数据库保存

2017-09-22 11:41 956 查看
最近在做把 爬虫部署到服务器上,爬下来的数据再存到数据库里。

因为服务器是linux系统的,所以我们事先需要配置一些环境文件以及依赖的库

1、装python
这一步没啥好说的吧

2、装pip,然后再用pip装依赖的库:
pip install pymysql
pip install dataset
pip install scrapyl
pip install urllib

3、装mysql
http://blog.csdn.net/whbing1471/article/details/50100161
看这位大神的帖子就行了

关于mysql的操作就不说了,但其实我第一次在linux下安装配置mysql,遇到了一个大坑:

爬虫爬下来数据后,插入数据库时的汉字编码问题。网页上是utf-8,但我数据库不是,所以遇到了mysql[ERROR 1366】

解决方法:

进入mysql,然后输入以下两个命令

alter database [数据库名] character set utf8;

alter table 【表名】character set utf8;

这里还有一个坑:我的爬虫爬的网站的规模其实很小,网站个数大概有二三十个,所以我的爬虫每次是爬整个网站,而不是新增页面。我设置每天凌晨一点爬一次,所以会爬到重复的东西。

解决方法:设置数据库里爬到的url字段为UNIQUE ,这样重复的url就不会被插入进来了。

4、把爬虫部署到服务器上

环境都搭建好了,然后先把代码复制到服务器上,执行以下命令:

scp -r root@192.168.1.1:file_path_1 file_path_2

具体教程见http://www.cnblogs.com/lovychen/p/5756734.html

5、万事具备,执行代码(这之前记得把爬虫里的数据库连接的代码修改成服务器的)

我设置的是每天一点执行一次,这里我们使用crontab指令

crontab -e

再在里边加上我自己的指令,具体教程:http://www.cnblogs.com/kaituorensheng/p/4494321.html

tips:基于scrapy框架的爬虫一次执行多个:写一个main.py,里边按顺序写好你要执行的爬虫

就像这样:

os.system("scrapy crawl 【爬虫1】")

os.system("scrapy crawl 【爬虫2】")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: