最近在做把 爬虫部署到服务器上,爬下来的数据再存到数据库里。
因为服务器是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】")