网络爬虫实验综合手册.docx
- 文档编号:13987433
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:12
- 大小:508.50KB
网络爬虫实验综合手册.docx
《网络爬虫实验综合手册.docx》由会员分享,可在线阅读,更多相关《网络爬虫实验综合手册.docx(12页珍藏版)》请在冰点文库上搜索。
网络爬虫实验综合手册
网络爬虫
1.实验目的
1.熟悉网络爬虫有关概念及实现网络爬虫有关流程。
2.理解WebCollector框架基本原理。
3.纯熟掌握在Eclipse项目中配备使用WebCollector爬虫。
2.前提条件
1.对的安装和配备Java开发环境。
2.理解网络爬虫有关知识
3.进入WebCollector官方网站下载所需jar包。
3.实验任务及完毕原则
本次实验通过WebCollector框架实现一种简朴聚焦网络爬虫。
顾客可依照自己需求定制网络爬虫,设定待爬取网址、爬取网页数量、爬取网页内容等。
通过对该实例详细简介来探讨网络爬虫原理及在实际生活中应用。
在此实例基本上,学生需要独立完毕更为复杂聚焦网络爬虫,来爬取更故意义内容。
详细规定见“4扩展内容”。
3.1建立应用程序项目
打开eclipse,创立本次实验项目htmlCrawler(【File】->【New】->【JavaProject】
)如图1所示。
图1创立工程
3.2在Eclipse项目中配备使用WebCollector爬虫
1选中htmlCrawler右键,选中【New】->【Folder】,输入文献名称“lib”,如下图2所示。
图2创立文献夹
2解压缩webcollector-2.26-bin.zip,拷贝所有Jar包,放到lib目录中,如图3所示。
图3目录构造图
3将文献夹lib中所有jar包添加到buildpath中,如图4、图5、图6所示。
图4
图5
图6
依次选中jar包,导入到工程中。
4如果想看WebCollector源码,可觉得Jar包关联源码(可选),如图6、图7所示。
图6
图7
3.3当前可以编写WebCollector爬虫代码了
新建一种类Crawler.java,继承自BreadthCrawler。
重写visit办法,来实现满足自己需求爬虫即可。
如图8、图9所示。
图8
图9
3.4抓取河北师大软件学院网站首页源代码
packagehtmlCrawler;
importjava.io.IOException;
importcn.edu.hfut.dmic.webcollector.model.CrawlDatums;
importcn.edu.hfut.dmic.webcollector.model.Page;
importcn.edu.hfut.dmic.webcollector.plugin.berkeley.BreadthCrawler;
importcn.edu.hfut.dmic.webcollector.util.FileUtils;
publicclassCrawlerextendsBreadthCrawler{
publicCrawler(StringcrawlPath,booleanautoParse){
super(crawlPath,autoParse);
//TODOAuto-generatedconstructorstub
}
@Override
publicvoidvisit(Pagepage,CrawlDatumsnext){
//TODOAuto-generatedmethodstub
try{
System.out.println("正在提取:
"+page.getUrl());
//将爬取内容写到test.html页
FileUtils.writeFileWithParent("downloads/test.html",page.getContent());
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
//创立爬虫对象
Crawlercrawler=newCrawler("html_crawler",true);
crawler.addSeed("
try{
//启动爬虫
crawler.start
(1);
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
控制台输出成果:
-02-2514:
23:
06INFOcn.edu.hfut.dmic.webcollector.crawler.Crawler-startdepth1
-02-2514:
23:
06INFOcn.edu.hfut.dmic.webcollector.fetcher.Fetcher-opengenerator:
cn.edu.hfut.dmic.webcollector.plugin.berkeley.BerkeleyGenerator
-02-2514:
23:
06INFOcn.edu.hfut.dmic.webcollector.fetcher.Fetcher-initsegmentWriter:
cn.edu.hfut.dmic.webcollector.plugin.berkeley.BerkeleyDBManager
-02-2514:
23:
07INFOcn.edu.hfut.dmic.webcollector.fetcher.Fetcher--activeThreads=1,spinWaiting=0,fetchQueue.size=0
-02-2514:
23:
07INFOcn.edu.hfut.dmic.webcollector.fetcher.Fetcher-fetchURL:
正在提取:
-02-2514:
23:
08INFOcn.edu.hfut.dmic.webcollector.fetcher.Fetcher--activeThreads=0,spinWaiting=0,fetchQueue.size=0
-02-2514:
23:
08INFOcn.edu.hfut.dmic.webcollector.fetcher.Fetcher-clearallactiveThread
-02-2514:
23:
08INFOcn.edu.hfut.dmic.webcollector.fetcher.Fetcher-closegenerator:
cn.edu.hfut.dmic.webcollector.plugin.berkeley.BerkeleyGenerator
-02-2514:
23:
08INFOcn.edu.hfut.dmic.webcollector.fetcher.Fetcher-closesegmentwriter:
cn.edu.hfut.dmic.webcollector.plugin.berkeley.BerkeleyDBManager
-02-2514:
23:
08INFOcn.edu.hfut.dmic.webcollector.plugin.berkeley.BerkeleyDBManager-startmerge
-02-2514:
23:
08INFOcn.edu.hfut.dmic.webcollector.plugin.berkeley.BerkeleyDBManager-mergefetchdatabase
-02-2514:
23:
08INFOcn.edu.hfut.dmic.webcollector.plugin.berkeley.BerkeleyDBManager-mergelinkdatabase
-02-2514:
23:
08INFOcn.edu.hfut.dmic.webcollector.plugin.berkeley.BerkeleyDBManager-endmerge
-02-2514:
23:
08INFOcn.edu.hfut.dmic.webcollector.crawler.Crawler-depth1finish:
TOTALurls:
1
TOTALtime:
2seconds
爬取成果如图10所示。
图10
4扩展内容
4.1在本实验基本上,进行有关设立:
(1)爬取深度;设立启动线程数;
(2)设立爬取url上限;
(3)通过正则表达式设立爬取哪些网页,不爬取哪些网页等(eg./*不要爬取jpg|png|gif*/,代码:
crawler.addRegex("-.*\\.(jpg|png|gif).*");)。
(4)实当代码由学生自己完毕
4.2实现自己网络爬虫,抓取“新浪新闻”()网站某些信息。
(1)需要抓取信息涉及:
网址,标题,时间,网页内容等。
(2)将抓取数据写到文本文献或excel表中。
(3)抓取代码由学生自己完毕。
提示:
将数据写到excel表中,需要导入poi-3.14-beta1-1223.jar包,某些代码如下:
//创立一种EXCEL
Workbookwb=newHSSFWorkbook();
…..
//创立一种SHEET
sheet1=wb.createSheet("数据解析");
String[]title={"url","标题","评论","时间","内容","本地相对途径"};
inti=0;
//创立一行
Rowrow=sheet1.createRow((short)0);
//填充标题
for(Strings:
title){
Cellcell=row.createCell(i);
cell.setCellValue(s);
i++;
}
//下面是填充数据某些代码
AtomicIntegerid=newAtomicInteger(0);
Rowrow=sheet1.createRow((short)id.incrementAndGet());
row.createCell(0).setCellValue(url);
row.createCell
(1).setCellValue(title);
row.createCell
(2).setCellValue(comment);
row.createCell(3).setCellValue(time);
row.createCell(4).setCellValue(contents);
row.createCell(5).setCellValue(path);
4.3改进4.2中自己网络爬虫,将抓取数据直接写到数据库中。
实当代码由学生自己完毕。
提示:
使用JDBC连接数据库,要先导入mysql-connector-java-5.1.6-bin.jar包。
表创立可以参照如下sql语句:
createtablet_mess(
idint(4)notnullprimarykeyauto_increment,
urlvarchar(255)notnull,
titlevarchar(255),
datevarchar(255),
contentTEXT(10000),
pathvarchar(255));
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 爬虫 实验 综合 手册
![提示](https://static.bingdoc.com/images/bang_tan.gif)