zoukankan      html  css  js  c++  java
  • 寒假日报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”标签写错了。

  • 相关阅读:
    k8s集群中遇到etcd集群故障的排查思路
    keepalived安装
    python读取文件特定的行数
    Pycharm 退回跳转之前光标页面位置
    python中yield的用法详解——最简单,最清晰的解释
    np.random.permutation()解析
    处理文本分类数据集——THUCNews数据
    [深度学习] PyTorch 实现双向LSTM 情感分析
    lstm模型与情感分析实例
    跑Bert还得用tensorflow-1.11.0版本,否则报错
  • 原文地址:https://www.cnblogs.com/msdog/p/12213138.html
Copyright © 2011-2022 走看看