zoukankan      html  css  js  c++  java
  • 2020年寒假假期总结0118

      爬取首都之窗信件列表保存到TXT(上)

      我们需要对首都之窗的界面元素进行确定,打开网页进行元素检查可以发现:

     

      这样我们就发现了信件详情页和信件列表页之间的关系,所以想要从列表页跳转至详情页我们只需要获取整个a标签的onclick属性就可以了,或者是从a标签中提取出信件类型,和SugID也是可以的。

       这里我们先使用后者,这是一开始最先使用的方法,后面也会提到前者。代码如下:

            List<String> listType = page.getHtml().regex("·【(.*?)】").all();
            List<String> listID =page.getHtml().regex("name="SugId" value="(.*?)">").all();

      在先前的测试中会发现爬取会有些问题,爬取的有时候不是我们需要的,我们需要加上一个判断,两个数量都要大于1,防止爬取错了。

      这样我们就获取了详情页的网址的最重要的参数,然后使用字符串拼接为网址,我们打开网页源代码可以看到,信件类型分为三种:

       所以剩下的就是拼接网址,并且将这些网址加入爬取的队列:page.addTargetRequest(NewUrl);

                    if(listType.get(i).equals("建议")){
                        String NewUrl="http://www.beijing.gov.cn/hudong/hdjl/com.web.suggest.suggesDetail.flow?originalId="+listID.get(i);
                        page.addTargetRequest(NewUrl);
                    }else if(listType.get(i).equals("咨询")){
                        String NewUrl="http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?originalId="+listID.get(i);
                        page.addTargetRequest(NewUrl);
                    }else if(listType.get(i).equals("投诉")){
                        String NewUrl="http://www.beijing.gov.cn/hudong/hdjl/com.web.complain.complainDetail.flow?originalId="+listID.get(i);
                        page.addTargetRequest(NewUrl);
                    }
    View Code

      进而我们进入信件的详情页,对要爬取的元素进行检查,这里便不再赘述,由于代码是写的有点早,在css选择器上使用产生了误解,所以就不贴出来了,我们可以通过检查看到,class的属性名大多都含有空格,所以我们只需要将空格替换成   .(点)即可,这样就可以准确的抓取,这是后期才发现的。

      然后将爬取的数据都放到一个bean中进行保存,最后写到TXT文件中。

      

  • 相关阅读:
    iOS 关于字体根据不同屏幕尺寸等比适配的问题(zz)
    安卓开发:一种快速提取安卓app的UI图标资源的方法
    申请邓白氏编码的时候总是提示 Enter a valid Street Address 怎么办?
    利用日期、经纬度求日出日落时间 C语言程序代码(zz)
    JS导出Excel 代码笔记
    Bootstrap系列 -- 44. 分页导航
    Bootstrap系列 -- 43. 固定导航条
    Bootstrap系列 -- 42. 导航条中的按钮、文本和链接
    Bootstrap系列 -- 41. 带表单的导航条
    Bootstrap系列 -- 40. 导航条二级菜单
  • 原文地址:https://www.cnblogs.com/heiyang/p/12239818.html
Copyright © 2011-2022 走看看