天天看點

linux下在伺服器上配置scrapy架構的python爬蟲,使用mysql資料庫儲存

最近在做把 爬蟲部署到伺服器上,爬下來的資料再存到資料庫裡。

因為伺服器是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】")