初學SeimiCrawler遇到的坑

因爲SeimiCrawler的context基於spring實現,因此支持幾乎全部spring格式的配置文件和spring一般用法。SeimiCrawler會掃描工程classpath下全部xml格式配置文件,
可是隻有文件名以seimi開頭的xml配置文件能被SeimiCrawler識別並加載。
SeimiCrawler的日誌使用slf4j,可自行配置具體的實現。

需繼承BaseSeimiCrawler
需打上@Crawler註解,註解中name屬性是無關緊要的,若是設置了,那麼這個crawler則以你定義的名字命名,不然默認使用你建立的類名。
全部想要被SeimiCrawler掃描到的crawler需放在crawlers包下,
如:cn.wanghaomiao.xxx.crawlers,也能夠參考項目附帶的demo工程。 
初始化好Crawler後,你須要實現兩個最基本的方法public String[] startUrls();和public void start(Response response),實現後一個簡單的爬蟲就算寫完了。

全部想要被掃描生效的SeimiQueue需放在queues包下,
如cn.wanghaomiao.xxx.queues,demo工程中也有樣例。
知足以上要求,寫好本身的SeimiQueue後,經過註解@Crawler(name = "xx",queue = YourSelfRedisQueueImpl.class)來配置使用。
#JAR包問題,去maven倉庫刪除原來的JAR包,從新下載
java.lang.NoClassDefFoundError: org/springframework/dao/support/DaoSupport
#關閉數據庫出現異常
DBUtil.close(conn, pstmt, null);           
#出現的錯誤:(初步判斷是本身配置的c3p0鏈接池有問題)
java.sql.SQLException: No value specified for parameter 1
java.sql.SQLException: You can't operate on a closed Connection!!!
#字符編碼問題
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x81 \xE4...' for column 'content' at row 1
#未開啓本地的redis服務。
#windos64位redis下載地址:https://git.oschina.net/huyup/redis
#windows下開啓redis服務:使用cmd切換到redis的文件夾下  cd F:\redis  
#開啓redis服務:redis-server  redis.windows.conf 
WARN  c.w.seimi.def.DefaultRedisQueue - Could not get a resource from the pool
centos6.5安裝redis
yum -y install gcc
cd /usr/java/
wget http://download.redis.io/releases/redis-3.0.6.tar.gz
tar xzf redis-3.0.6.tar.gz
cd redis-3.0.6
make
#處理特殊狀況,當出現以下錯誤時候:

#error: jemalloc/jemalloc.h: No such file or directory

#執行命令:
make MALLOC=libc
#啓動redis 
src/redis-server

#測試redis
src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

當出現"bar"時候,說明安裝成功了!
#打包部署運行seimi
一、編寫好程序,在pom文件中加入seimi的打包插件
二、在myeclipse執行    clean package    命令
三、刷新一下項目,會發如今項目的的target會生成一些jar或文件夾之類的
四、複製    seimi-0.0.1-SNAPSHOT(裏面包含bin、seimi文件夾)    文件夾發送到linux系統中
五、在linux文件夾中切換到    seimi-0.0.1-SNAPSHOT    中
六、執行    ./bin/run.sh basic    的命令便可觀察程序運行的情況
相關文章
相關標籤/搜索