大三上寒假15天--第12天

今天继续学习webmagic

已经可以爬取出目录和跳转去信件的页面,不知道是一直有还是后来加的,现在好像多了哥跳转中页面,目录给的链接不是直接的信件页面,所以我还需要再加一条爬取跳转中页面的提供的url然后访问,才可以爬取信件内容,但是不知道是正则表达式的问题还是什么,总之爬取不到想要的url一直是null,爬取到的为:

url:    http://www.beijing.gov.cn/so/view?qt=%E4%BF%A1%E4%BB%B6&location=2&reference=5BED02004DBE50389DA483B44DF7B504&url=816D9628B2B6451D70BB05836297BD537AD9C7CA72A996F247E032FAD6786550657516097B73EA55C88868977934111E39B9144602CBA42CCAE2B1D7E84EDD3F624968D6D3B0B36D5D887A620F411AEDA9815497116468E324A03EAA90DBCC31&title=%E5%85%B3%E4%BA%8E%E4%BF%A1%E4%BB%B6%E7%BC%96%E5%8F%B7%E4%B8%BA40012481%E7%9A%84%E4%BF%A1%E4%BB%B6%E8%87%B3%E4%BB%8A%E6%9C%AA%E5%9B%9E%E5%A4%8D%E7%9A%84%E9%97%AE%E9%A2%98&tab=all&siteCode=1100000088
allhtml:    <!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="referrer" content="never">
  <title>跳转中......</title>
  <script type="text/javascript">

            location.href = "http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?originalId=20026589";

</script>
 </head>
 <body>
 </body>

需要location.href中的http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?originalId=20026589,我的正则表达式为:http://www.beijing.gov.cn/hudong/hdjl/\\S+[^\"],一下为我的全部代码:

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=26;i<=26;i++){
            urlstr="http://www.beijing.gov.cn/so/s?qt=%E4%BF%A1%E4%BB%B6&tab=all&siteCode=1100000088&page="+i;
            page.addTargetRequest(urlstr);
            System.out.println(urlstr);
            page.addTargetRequests(page.getHtml().links().regex("view\\S+8").all());
            page.addTargetRequests(page.getHtml().links().regex("http://www.beijing.gov.cn/hudong/hdjl/\\S+[^\"]").all());
            System.out.println(page.getHtml().links().regex("view\\S+8").all());
            System.out.println(page.getHtml().regex("<title>跳转中......</title>"));
    }
        }
    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=all&siteCode=1100000088&page=26")
        .addPipeline(new FilePipeline("./"))
        .setScheduler(new FileCacheQueueScheduler("./"))
        .thread(5)
        .run();
        System.out.println("完成");
  }
}

匹配跳转中...成功输出:

我想很可能是正则的问题,但是并看不出来,而且我改成http://\\S+[^\"]是可以匹配到url的所以不是[^\"]的问题,很迷茫,中间只是加上了www.beijing.gov.cn/hudong/hdjl/是和location.href中的相同的啊,明天我会继续研究。

原文地址:https://www.cnblogs.com/my---world/p/12301796.html

时间: 2024-08-30 12:59:12

大三上寒假15天--第12天的相关文章

大三上寒假15天--第3天

学习于大数据原理与应用 第十六章 Spark 学习指南 三.独立应用程序编程 2.Scala应用程序代码 cd ~           # 进入用户主文件夹 mkdir ./sparkapp        # 创建应用程序根目录 mkdir -p ./sparkapp/src/main/scala     # 创建所需的文件夹结构 vim ./sparkapp/src/main/scala/SimpleApp.scala #在 ./sparkapp/src/main/scala 下建立一个名为

大三上寒假15天--第1天

学习于林子雨<大数据技术原理与应用>教材配套大数据软件安装和编程实践指南 一. 安装spark 第一步,spark下载(http://spark.apache.org/downloads.html) 第二步,spark压缩包解压 sudo tar -zxf ~/下载/spark-1.6.2-bin-without-hadoop.tgz -C /usr/local/ 第三步,解压后文件夹改名为spark cd /usr/local sudo mv ./spark-1.6.2-bin-withou

大三上寒假15天--第5天

昨天的下载完成后运行报错,应该是下载的spark版本和教程不符合,然后pom.xml文件中的spark-core内容而应该不同,但是我还是用的教程导致,现在正在尝试安装教程给的网站找的内容又下载中,不知道这次又要下载多久.(我下载的是spark 2.4.4) <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0&qu

大三上寒假15天--第10天

今天继续学习webmagic爬虫技术,组件包含: 1.Downloader Downloader负责从互联网上下载页面,以便后续处理.WebMagic默认使用了Apache HttpClient作为下载工具. 2.PageProcessor PageProcessor负责解析页面,抽取有用信息,以及发现新的链接.WebMagic使用Jsoup作为HTML解析工具,并基于其开发了解析XPath的工具Xsoup. 在这四个组件中,PageProcessor对于每个站点每个页面都不一样,是需要使用者定

大三上寒假15天--第14天

今天依旧学习了webmagic爬虫,发现昨天爬取的网址不对,内容也不对,重新找了一个网址爬取,重新整理了思路,发现这个网址,分为三种类型的链接,建议,咨询和一个什么记不清了,需要先判断类型,然后才能分配Id,然后加入url队列. 这个网址的一大难点,就是分页是一个POST传值,然后动态的修改了网页内容,所以今天重新学习了,通过POST获取内容,收益匪浅,忙活了一天,忘记写博客了,很晚了所以就写这么多吧. 另外附上学习的网址,讲的很好 关键代码为: Request request = new Re

大三上寒假15天--第15天

今天webmaigic爬虫又学了一个小技巧,想要自己设计保存爬取内容形式,可以不用重写Pipeline,在process()方法中写上,你想要的保存操作,多数情况可以达到相同的效果,我的爬虫程序,想要将内容保存在一个txt中,就是这么实现的,个人感觉简单很多,也是看了网上的高手的文章,才学到了这个技巧,受益匪浅. 爬虫北京政府信件到此就完成完成了,全部代码如下,我的保存特点为以空格隔开不同的信息,方便导入数据库: package my.webmagic2; import java.io.File

大三上寒假15天--第11天

今天继续学习webmagic爬虫 通过老师给的学习资料学习后,对webmagic爬虫基本有了了解,当时对site方法有点模糊,今天也终于搞明白了,感觉就像模拟了一个用户一样,对一个网站的框架还是不是很了解,所以还是不太理解,那些cookie,host,UserAgent,和header是什么,不过我以后会搞明白,今天准备进行编码实际练习,进行一个网站的爬取. 这是爬取前十页信件目录一样的网页,还不清楚怎么获取信件内容url,我会继续努力 package my.webmagic; import u

大三上的总结(-----坚持走完了自己想走的路-----微笑---------)

(⊙v⊙)嗯,这天是第15周的周末的早晨八点. 为什么突然要写一篇这样柔软的文章来描述自己的大三生活呢? ->_->  因为又到期末啦! 该总结一下自己的脑瓜里学会啥了? 噗,先说点acmer的事吧! 西安赛区小小的回忆,来一首<回忆>---白智英,嗯,优美的调调,西安赛区一战,让我想了很多很多,从寒假集训,到暑假集训,为此放弃了自己休息的时间,而呆在实验室鏖战的ACMer,以及陈老师对我时不时送来的水果和时不时来看望我们,以及学校领导的重视. 深深的知道这一次现场赛来的有多么不容

大三上------期末总结

今天终于把万恶的期末考试给考完了!想想考的都是专业课,原本以为肯定会复习地很开心.因为不用像以前一样只是考试前一周什么都不会,然后考前疯狂地看书刷题,考完之后瞬间遗忘.不过事实证明...为了考试看书还是非常痛苦...即使是喜欢的算法,C++,操作系统....不过幸好已经考完啦!接下来为期四周的寒假又不用为考试而学习了! 大三上这一个学期接触的主要的东西依旧还是底层的系统和算法吧.在开学的第一个月把<UNIX环境高级编程>看了一遍,而且是英文原版的.要说真的学到了什么,其实没有,因为这本书更像是