最近在做把 爬蟲部署到伺服器上,爬下來的資料再存到資料庫裡。
因為伺服器是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 [email protected]: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】")