寒假日报day6

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

实现代码:

  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 }
View Code

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 }
View Code

数据

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
具体答复:     来信人,您好!
View Code

大概就是这样了,现在的难题就是如何获取第二页以及之后的数据。

//***********************************************************************************//

上线的代码有一些小瑕疵,那个网友同问是null后来我又回去看了一下,要把那句话改成这样的:

1 page.putField("网友同问", page.getHtml().xpath("//div[@class=clearfix]/div[@class=col-xs-12]/div[@class=text-muted]/label/text()"));
View Code

其实错误很简单,是我把“label”标签写错了。

猜你喜欢

转载自www.cnblogs.com/msdog/p/12213138.html