• zhugw's avatar
    Update FileCacheQueueScheduler.java · eb3c78b9
    zhugw authored
    这样是不是更严谨? 否则的话,中断后再次启动时, (第一个)入口地址仍会被添加到队列及写入到文件中. 
    但是现在有另外一个问题存在,如第一遍全部抓取完毕了(通过spider.getStatus==Stopped判断),休眠24小时,再来抓取(通过递归调用抓取方法).
    这时不同于中断后再启动,lineReader==cursor, 于是初始化时队列为空,入口地址又在urls集合中了, 故导致抓取线程马上就结束了.这样的话就没有办法去抓取网站上的新增内容了.
    解决方案一:
    判断抓取完毕后,紧接着覆盖cursor文件,第二次来抓取时,curosr为0, 于是将urls.txt中的所有url均放入队列中了, 可以通过这些url来发现新增url.
    方案二:
    对方案一进行优化,方案一虽然可以满足业务要求,但会做很多无用功,如仍会对所有旧target url进行下载,抽取,持久化等操作.而新增的内容一般都会在HelpUrl中, 比如某一页多了一个新帖子,或者多了几页内容. 故第二遍及以后来爬取时可以仅将HelpUrl放入队列中. 
    
    希望能给予反馈,我上述理解对不对, 有什么没有考虑到的情况或者有更简单的方案?谢谢!
    eb3c78b9
Name
Last commit
Last update
assets Loading commit data...
en_docs Loading commit data...
webmagic-avalon Loading commit data...
webmagic-core Loading commit data...
webmagic-extension Loading commit data...
webmagic-samples Loading commit data...
webmagic-saxon Loading commit data...
webmagic-scripts Loading commit data...
webmagic-selenium Loading commit data...
zh_docs Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
README.md Loading commit data...
pom.xml Loading commit data...
release-note.md Loading commit data...
user-manual.md Loading commit data...
webmagic-avalon.md Loading commit data...