本教程演示了WebCollector 2.20的新特性。
下载
WebCollector最新jar包可在WebCollector github主页下载。
MetaData:
MetaData是每个爬取任务的附加信息,灵活应用MetaData可以大大简化爬虫的设计。
例如Post请求往往需要包含参数,而传统爬虫单纯使用URL来保存参数的方法不适合复杂的POST请求。
一些爬取任务希望获取遍历树的深度信息,这也可以通过MetaData轻松实现,
可参见教程DemoDepthCrawler。
RamCrawler:
RamCrawler不需要依赖文件系统或数据库,适合一次性的爬取任务。
如果希望编写长期任务,请使用BreadthCrawler。
本教程实现了一个爬取Bing搜索前n页结果的爬虫,爬虫的结果直接输出到标准输出流
如果希望将爬取结果输出到ArrayList等数据结构中,在类中定义一个ArrayList的成员变量,
输出时将结果插入ArrayList即可,这里需要注意的是爬虫是多线程的,而ArrayList不是线程
安全的,因此在执行插入操作时,可使用下面的方式上锁保证安全。
synchronized(this){
//插入操作
}
本教程中对Bing搜索的解析规则可能会随Bing搜索的改版而失效。
import cn.edu.hfut.dmic.webcollector.model.CrawlDatum;
import cn.edu.hfut.dmic.webcollector.model.CrawlDatums;
import cn.edu.hfut.dmic.webcollector.model.Page;
import cn.edu.hfut.dmic.webcollector.plugin.ram.RamCrawler;
import java.net.URLEncoder;
import org.jsoup.select.Elements;
import org.jsoup

本教程详细介绍了如何使用WebCollector 2.20爬取搜索引擎,特别是Bing的搜索结果。教程涵盖了MetaData的使用,用于简化POST请求和处理遍历深度信息。还讲解了RamCrawler的适用场景,它适合一次性爬取任务,同时提醒在多线程环境下使用ArrayList需要注意线程安全问题。此外,提到了通过捐款支持WebCollector项目的途径。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



