爬取北京市信件内容:
下载webmagic-0.7-libs.tar.gz压缩包,解压缩。没有压缩包可以加QQ:893225523
通过Filezilla上传到/home/hadoop/下载
sudo tar -zxf ~/下载/webmagic-0.7.3-all.tar.gz -C /data/edu1/
新建Java Project,命名为
点击项目名pachong1,新建一个目录,命名为libs,并将/data/edu1/webmagic-0.7-libs下的所有的jar包,拷贝到libs目录下。并选中所有jar包,右键点击“Build Path” => “Add to Build Path”
在pachong1项目下,点击src => New => Package新建一个包,在弹出窗口中,输入包名my.webmagic
在my.webmagic包下,新建class类
将新建的类,命名为Getgov,搭建完的代码框架如下:
代码编写
在WebMagic里,实现一个基本的爬虫只需要编写一个类,实现 us.codecraft.webmagic.processor.PageProcessor接口即可。这个类基本上包含了抓取一个网站,需要写的所有代码。实现接口后,重写里面的getSite和process方法
package my.webmagic; import us.codecraft.webmagic.Page; import us.codecraft.webmagic.Site; import us.codecraft.webmagic.Spider; import us.codecraft.webmagic.pipeline.FilePipeline; import us.codecraft.webmagic.processor.PageProcessor; import us.codecraft.webmagic.scheduler.FileCacheQueueScheduler; public class Getgov implements PageProcessor{ private Site site=Site.me().setRetrySleepTime(3).setSleepTime(100); /** * @param args */ public Site getSite() { // TODO Auto-generated method stub return site; } public void process(Page page) { // TODO Auto-generated method stub page.putField("allhtml",page.getHtml().toString()); String urlstr=null; for(int i=2;i<=25;i++){ urlstr="http://www.beijing.gov.cn/so/s?qt=%E4%BF%A1%E4%BB%B6&tab=zmhd&siteCode=1100000088&page="+i; page.addTargetRequest(urlstr); } page.addTargetRequests(page.getHtml().links().regex("view\\S+8").all()); page.addTargetRequests(page.getHtml().regex("http://www.beijing.gov.cn/hudong/hdjl/com.web.\\S+.\\S+.flow\\?originalId=[^\"]+").all()); page.addTargetRequests(page.getHtml().regex("http://hudong.bjhr.gov.cn/zixun/[^\"]+").all()); page.addTargetRequests(page.getHtml().regex("http://www.beijing.gov.cn/hudong/yonghu/static/[^\"]+").all()); page.addTargetRequests(page.getHtml().regex("http://ylba.wjw.beijing.gov.cn/ggws/[^\"]+").all()); System.out.println(page.getHtml().regex("http://www.beijing.gov.cn/hudong/hdjl/com.web.\\S+.\\S+.flow\\?originalId=[^\"]+").all()); } public static void main(String[] args) { Spider.create(new Getgov()) .addUrl("http://www.beijing.gov.cn/so/s?qt=%E4%BF%A1%E4%BB%B6&tab=zmhd&siteCode=1100000088&page=1") .addPipeline(new FilePipeline("./")) .setScheduler(new FileCacheQueueScheduler("./")) .thread(5) .run(); System.out.println("完成"); } }
原文地址:https://www.cnblogs.com/jccjcc/p/12308185.html
时间: 2024-11-01 13:29:17