java爬虫抓取网页数据(WebCollector2.20线程安全教程演示2.20 )
优采云 发布时间: 2021-10-07 03:38java爬虫抓取网页数据(WebCollector2.20线程安全教程演示2.20
)
本教程演示webcollector2.20的新功能
下载
webcollector的最新jar包可以从webcollector GitHub的主页下载
元数据:
元数据是每个爬网任务的附加信息。元数据的灵活应用可以大大简化爬虫的设计
例如,post请求通常需要收录参数,而传统的爬虫程序只是使用URL保存参数,这不适合复杂的post请求
有些爬行任务需要获取遍历树的深度信息,也可以通过元数据轻松实现
请参阅教程DemocepthCrawler
RamCrawler:
Ramcrawler不需要依赖文件系统或数据库,适合于一次性爬网任务
如果您想编写长期任务,请使用breadthcrawler
本教程实现了一个爬虫程序,它对Bing搜索的前N个页面的结果进行爬虫,并将爬虫结果直接输出到标准输出流
如果要将爬网结果输出到数据结构(如ArrayList),请在类中定义ArrayList的成员变量
输出时将结果插入ArrayList。请注意,爬虫程序是多线程的,而ArrayList不是线程化的
它是安全的。因此,在执行插入操作时,可以使用以下方法锁定以确保安全
synchronized(this){
//插入操作
}
本教程中Bing搜索的解析规则可能会随着Bing搜索的修订而过期
<p><br />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.nodes.Element;
public class DemoBingCrawler extends RamCrawler {
public DemoBingCrawler(String keyword, int maxPageNum) throws Exception {
for (int pageNum = 1; pageNum