现在算是有点小数据了,经过这些天的努力,我得到了第一页的数据,以及信件的内容:
实现代码:

1 package com.ms.test; 2 3 import java.util.List; 4 5 import us.codecraft.webmagic.Page; 6 import us.codecraft.webmagic.Site; 7 import us.codecraft.webmagic.processor.PageProcessor; 8 9 public class FirstWebMagic implements PageProcessor { 10 11 private Site site = Site.me() 12 .setDomain("beijing.gov.cn") //设置域名,设置域名后,addcookie才能生效 13 .setCharset("utf8"); //设置编码; //设置间隔 14 15 @Override 16 public Site getSite() { 17 // TODO Auto-generated method stub 18 return site; 19 } 20 21 @Override 22 public void process(Page page) { 23 // TODO Auto-generated method stub 24 if(page.getUrl().regex("http://www.beijing.gov.cn/hudong/hdjl/com.web.search.mailList.flow").match()) { 25 //如果是首页 26 //System.out.println("主页面"+page.getUrl()); 27 pageOne(page); 28 }else { 29 //具体信息页面 30 //System.out.println("具体信息页面"+page.getUrl()); 31 //具体信息页面处理 32 messCollect(page); 33 } 34 35 //System.out.println(page.getUrl().regex("http://www.beijing.gov.cn/hudong/hdjl/com.web.search.mailList.flow").match()); 36 37 } 38 39 //首页处理 40 private void pageOne(Page page) { 41 // TODO Auto-generated method stub 42 List<String> s=page.getHtml().xpath("//div[@class=o-font3]/a/@onclick").all(); 43 //System.out.println(s); 44 for(String str:s) { 45 //截取输出 46 //System.out.println("源字符串为:"+str); 47 //String str1=str; 48 String jiequ1=str.substring(14, 16); 49 String jiequ2=str.substring(19, 32); 50 //System.out.println("截取1:"+jiequ1); 51 //System.out.println("截取2:"+jiequ2); 52 //return; 53 /* 54 * letterdetail('咨询','AH20011700001') 55 * letterdetail('建议','AH20011600274') 56 letterdetail('咨询','AH20011600263') 57 letterdetail('咨询','AH20011600252') 58 letterdetail('咨询','AH20011600206') 59 letterdetail('咨询','AH20011600198') 60 */ 61 String url= "http://www.beijing.gov.cn/hudong/hdjl/com.web.consult."; 62 String type="";//声明类型码 63 //尾部为:consultDetail.flow?originalId=AH20011700001 64 if(jiequ1.equals("咨询")){ 65 //System.out.println(jiequ1); 66 type="consultDetail.flow?originalId="; 67 url+=type; 68 //System.out.println(url); 69 }else if(jiequ1.equals("建议")) { 70 //System.out.println(jiequ1); 71 type="suggesDetail.flow?originalId="; 72 url+=type; 73 //System.out.println(url); 74 }else if(jiequ1.equals("投诉")) { 75 //System.out.println(jiequ1); 76 type="complainDetail.flow?originalId="; 77 url+=type; 78 } 79 url+=jiequ2; 80 //加上得到的地址数字码 81 //System.out.println(url); 82 page.addTargetRequest(url); 83 } 84 //page.putField("one", page.getHtml().xpath("//div[@class=o-font3]/a/@onclick").all().toString()); 85 //page.putField("111", page.getHtml().css("div.pb-3 a").all().toString()); 86 //page.addTargetRequests(page.getHtml().css("a.my_next_new").links().all()); 87 } 88 89 //具体信息页面处理 90 private void messCollect(Page page) { 91 // TODO Auto-generated method stub 92 //获取各个路径 93 page.putField("问", page.getHtml().xpath("//div[@class=p-2]/div[@class=o-border-bottom2]/div[@class=my-2]/strong/text()")); 94 page.putField("来信人", page.getHtml().xpath("//div[@class=p-2]/div[@class=my-3]/div[@class=col-xs-10]/text()")); 95 page.putField("时间", page.getHtml().xpath("//div[@class=p-2]/div[@class=my-3]/div[@class=col-xs-5]/text()")); 96 page.putField("网友同问", page.getHtml().xpath("//div[@class=p-2]/div[@class=my-3]/div[@class=col-xs-4]/lable/text()")); 97 page.putField("问题描述", page.getHtml().xpath("//div[@class=p-2]/div[@class=mx-2]/text()")); 98 page.putField("答", page.getHtml().xpath("//div[@class=o-border-bottom]/div[@class=o-border-bottom2]/div[@class=col-xs-9]/text()")); 99 page.putField("答复时间", page.getHtml().xpath("//div[@class=o-border-bottom]/div[@class=o-border-bottom2]/div[@class=col-xs-12]/text()")); 100 page.putField("具体答复", page.getHtml().xpath("//div[@class=o-border-bottom]/div[@class=my-3]/text()")); 101 } 102 103 }
main函数代码:

1 package com.ms.showPack; 2 3 import com.ms.test.*; 4 5 import us.codecraft.webmagic.Spider; 6 7 public class FirstWebMagicShow { 8 FirstWebMagic fwm= new FirstWebMagic(); 9 public static void main(String[] args) { 10 Spider.create(new FirstWebMagic())// 11 .addUrl("http://www.beijing.gov.cn/hudong/hdjl/com.web.search.mailList.flow") //设置要抓取的页面 12 .run(); //运行爬虫 13 14 } 15 }
数据

2020-01-19 11:48:28,958 INFO [us.codecraft.webmagic.Spider] - Spider beijing.gov.cn started! 2020-01-19 11:48:28,964 INFO [us.codecraft.webmagic.downloader.HttpClientDownloader] - downloading page http://www.beijing.gov.cn/hudong/hdjl/com.web.search.mailList.flow get page: http://www.beijing.gov.cn/hudong/hdjl/com.web.search.mailList.flow 2020-01-19 11:48:34,526 INFO [us.codecraft.webmagic.downloader.HttpClientDownloader] - downloading page http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.suggesDetail.flow?originalId=AH20011700283 2020-01-19 11:48:34,590 WARN [us.codecraft.webmagic.downloader.HttpClientDownloader] - code error 500 http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.suggesDetail.flow?originalId=AH20011700283 2020-01-19 11:48:39,605 INFO [us.codecraft.webmagic.downloader.HttpClientDownloader] - downloading page http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?originalId=AH20011700001 get page: http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?originalId=AH20011700001 问: 希望能够上调租房者住房公积金提取额度的建议 来信人: 来信人: bj***65 时间: 时间:2020-01-17 网友同问: null 问题描述: 您好,我是一位在北京租房的小白领。住房公积金可以提取进行租房,对我们租房者是一个非常人性的制度。但是随着物价房价的上涨,目前北京的房租价格每年也在不断上调,但是租房者住房公积金提取最高限额却多年没有调整。我认为提取额度应该是根据市场变化而浮动的,这样也更加科学和人性化,所以希望政府、相关部门能够考虑一下这个建议。希望提取额度能够上调,也希望在三月份即将召开的两会,我们人大代表能够提出一些草案建议,为我们努力打拼的老百姓谋更多福利,希望国家政府能够听到我们的心声。 答: 北京住房公积金管理中心 答复时间: 答复时间:2020-01-17 具体答复: 您好,您的建议已收悉,我们将转交政策制定部门研讨。感谢您对公积金的支持和理解,祝您生活愉快。 2020-01-19 11:48:44,730 INFO [us.codecraft.webmagic.downloader.HttpClientDownloader] - downloading page http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.suggesDetail.flow?originalId=AH20011600274 2020-01-19 11:48:44,779 WARN [us.codecraft.webmagic.downloader.HttpClientDownloader] - code error 500 http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.suggesDetail.flow?originalId=AH20011600274 2020-01-19 11:48:49,794 INFO [us.codecraft.webmagic.downloader.HttpClientDownloader] - downloading page http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?originalId=AH20011600263 get page: http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?originalId=AH20011600263 问: 1月9日提交了公积金提取资料,租房提取,3个月转接4500,一直没有到账 来信人: 来信人: bj***76 时间: 时间:2020-01-16 网友同问: null 问题描述: 1月9日提交了公积金提取资料,租房提取,3个月转接4500,一直没有到账,想问什么时候可以到账,谢谢 答: 北京住房公积金管理中心 答复时间: 答复时间:2020-01-17 具体答复: 您好,网上可直接办结租房提取是1月10日才上线的,您1月9日提交的申请需按照老政策进行办理。如您申请的提取事项,没有审核通过的话,您可自行撤销,重新提交新的提取事项。 2020-01-19 11:48:54,935 INFO [us.codecraft.webmagic.downloader.HttpClientDownloader] - downloading page http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?originalId=AH20011600252 get page: http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?originalId=AH20011600252 问: 个人公积金提取 来信人: 来信人: bj***48 时间: 时间:2020-01-16 网友同问: null 问题描述: 在重庆使用商业贷款买房,?但是现在重庆开的发票是电子发票,?已经没有纸质发票了,?请问这种情况可以在北京提取公积金吗??如果不能应该怎么操作才能提取. 答: 北京住房公积金管理中心 答复时间: 答复时间:2020-01-17 具体答复: 您好,只有能在税务系统查询到具体信息,电子发票也是可以的。 2020-01-19 11:49:00,093 INFO [us.codecraft.webmagic.downloader.HttpClientDownloader] - downloading page http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?originalId=AH20011600206 get page: http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?originalId=AH20011600206 问: 关于企业营业执照更换法人 来信人: 来信人: Yh***98 时间: 时间:2020-01-16 网友同问: null 问题描述: 企业营业执照要换法人,需要什么材料与手续 答: 市市场监督管理局 答复时间: 答复时间:2020-01-17 具体答复: 来信人,您好!
大概就是这样了,现在的难题就是如何获取第二页以及之后的数据。
//***********************************************************************************//
上线的代码有一些小瑕疵,那个网友同问是null后来我又回去看了一下,要把那句话改成这样的:

1 page.putField("网友同问", page.getHtml().xpath("//div[@class=clearfix]/div[@class=col-xs-12]/div[@class=text-muted]/label/text()"));
其实错误很简单,是我把“label”标签写错了。