ZhihuCrawl log

代码改来改去已经改迷糊了……所以从现在开始每次改了些什么都记录一下吧:

上上次:老师布置新添加一个话题之后,我简单复制了一份新爬虫,把topic参数改了一下,这样打算topic 1爬完后用新爬虫爬topic 2,互不干涉;但是老师找上来说两个话题必须同时爬才行。

所以上次:我把两个爬虫融合在一起,让topic参数不由手动指定,而根据URL自动识别,然后美滋滋觉得没问题了。但是今天一运行发现bug,这样两个话题爬到的数据都会存进同一份数据库里啊!

为了让两个话题分别存到2个数据库,这次:绞尽脑汁,还是分成了两个爬虫,两个爬虫分别连接2个redis数据库,使用2个pipelines存进2个MySQL数据库里。具体来说,

1. 在StartCrawl里改了初始化redis时的d0 d1;

2. duplicate了spider,在custom settings里改了redis param的d0 d1;

3. duplicate了pipelines,分别为不同spider指定;

4. 在pipeline里根据topic自动给DATABASE_NAME加t1/t2前缀,避免了改DATABASE_NAME相关的一大堆;

5. 在pipeline里改了redis连接的d0 d1

这样是打算在scrapinghub上多开一些定期爬虫任务,有的是topic1的,有的是t2的,各自推动相关redis d0和d1中urls的进度。但一个显然的缺点是当某个topic的任务先跑完之后,正在进行中的spiders没办法自动全变成另一个topic的

tip:以后要注意初始化database的时候要整两个:t1m**d**和t2m**d**