Heritrix只爬取html、htm等特定页面

Heritrix有5条链,网上有说在Extractor链里做处理,该链是抽取链,可以负责解析html页面的内容,然后进一步筛选。但是我目前只想通过判断后缀名筛选出html、htm、shtml、xshtml等文件。因此这样在Extractor里做处理就有点牛刀小用的意思,因此我在PostProcessor链里做处理。详细介绍如下:

FronitierScheduler是一种PostProcessor,它的作用是将Extractor中分析得到链接加入到Froniter中,以供下一步处理(写文件处理等等)。

具体方法:

1.找到org.archive.crawler.postprocessor包下的FrontierScheduler.java文件

2.找到FrontierScheduler类的protected void schedule(CandidateURI caUri)方法

3.我的改写如下:

<span style="font-size:14px;">     protected void schedule(CandidateURI caUri) {
        //将caUri转为String格式
        String url = caUri.toString();
        //打印出来查看一下
        System.out.println("------" + url);
        //剔除以特定后缀名结尾的URL
        if(url.endsWith(".jpeg")
    			||url.endsWith(".jpg")
    			||url.endsWith(".gif")
    			||url.endsWith(".css")
    			||url.endsWith(".doc")
    			||url.endsWith(".zip")
    			||url.endsWith(".png")
    			||url.endsWith(".js")
    			||url.endsWith(".pdf")
    			||url.endsWith(".xls")
    			||url.endsWith(".rar")
    			||url.endsWith(".exe")
    			||url.endsWith(".txt")){
    		return;
    	}

        //将未剔除的文件加入到下一步处理(写入到本地磁盘的处理等等)
        getController().getFrontier().schedule(caUri);

     }</span>

时间: 2024-11-19 08:17:17

Heritrix只爬取html、htm等特定页面的相关文章

【爬虫问题】爬取tv.sohu.com的页面, 提取视频相关信息

尝试解决下面的问题 问题: 爬取tv.sohu.com的页面, 提取视频相关信息,不可用爬虫框架完成 何为视频i关信息?属性有哪些? 需求: 做到最大可能的页面覆盖率 *使用httpClient 模拟获取页面HtmlText源码信息,正则出源码视频URL解析类HtmlText2URLlist.ashx. 正则式:href=\"(.*?)\" 选择重要的信息进行存储 选择合适的数据存储方式,便于后续使用 数据库字段 ID.URL.IsSuccess.Title.Isdelete.Vide

PHP 爬虫体验(三) - 使用PHP + puppeteer爬取js动态渲染的页面内容

之前写的两篇爬虫体验基本上涵盖了一般的Html页面提取场景,但是有些时候,如果目标页面不是纯静态的页面,而是使用js动态渲染的页面(比如one),之前的爬虫就不好使了,这种时候就要借助一些其他工具来进行实现. 一般爬取动态页面的思路是通过软件模拟浏览器行为获取到渲染后的页面镜像,然后再对渲染后的页面进行分析,常用的工具有selenium,phantomJs,puppeteer等,通过对项目维护程度.对PHP友好度的对比,我选用的是puppeteer. 根据官方介绍,谷歌在2017年开发了自家Ch

HtmlUnit爬取Ajax动态生成的页面内容

HtmlUnit说白了就是一个浏览器,这个浏览器是用Java写的无界面的浏览器,正因为其没有界面,因此执行的速度还是可以滴. HtmlUnit提供了一系列的API,这些API可以干的功能比较多,如表单的填充,表单的提交,模仿点击链接,由于内置了Rhinojs引擎,因此可以执行JavaScript 之前用的时候一直抓取不了Ajax动态生成table及其数据,用Firefox和IE浏览器查看网页源代码也看不到table和数据,但是用Firefox查看元素能看到信息 调研了HtmlUnit好久都没有用

关于爬取异步加载的页面

在爬取网站时常遇到异步加载的情况,必须点击或者下拉滚动条才会加载出更多的图片或视频,在源码中却一片空白,我一开始遇到时候也有点懵,了解了就好,还是请求.学过一些前端知识的朋友都清楚其实就是ajax异步加载js,这是为了提高用户的体验,许多网站都使用这种方法. 究其根本,其实就是将这部分请求放在了后台,查看的话,按F12然后F5刷新页面,在Network标签下都会显示出来,比如下面这个网站. ? 随便点一个发现看下啥情况 ? 好吧,其实就是个get请求罢了,只是将正常的点击翻页查询变成了下拉查询,

Python爬虫-爬取糗事百科段子

闲来无事,学学python爬虫. 在正式学爬虫前,简单学习了下HTML和CSS,了解了网页的基本结构后,更加快速入门. 1.获取糗事百科url http://www.qiushibaike.com/hot/page/2/    末尾2指第2页 2.先抓取HTML页面 import urllib import urllib2 import re page = 2 url = 'http://www.qiushibaike.com/hot/page/' + str(page) #对应第2页的url

Python 爬取 13 个旅游城市,告诉你五一大家最爱去哪玩?

五一假期已经结束,小伙伴是不是都还没有玩过瘾?但是没办法,还有很多bug等着我们去写,同样还有需要money需要我们去赚.为了生活总的拼搏. 今年五一放了四天假,很多人不再只是选择周边游,因为时间充裕,选择了稍微远一点的景区,甚至出国游.各个景点成了人山人海,拥挤的人群,甚至去卫生间都要排队半天,那一刻我突然有点理解灭霸的行为了. 今天,通过分析去哪儿网部分城市门票售卖情况,简单的分析一下哪些景点比较受欢迎.等下次假期可以做个参考. 通过请求https://piao.qunar.com/tick

使用node爬虫,爬取指定排名网站的JS引用库

前期准备 本爬虫将从网站爬取排名前几的网站,具体前几名可以具体设置,并分别爬取他们的主页,检查是否引用特定库. github地址 所用到的node主要模块 express 不用多说 request http模块 cheerio 运行在服务器端的jQuery node-inspector node调试模块 node-dev 修改文件后自动重启app 关于调试Node 在任意一个文件夹,执行node-inspector,通过打开特定页面,在页面上进行调试,然后运行app,使用node-dev app

Scrapy框架——CrawlSpider爬取某热线网站

CrawlSpider Scrapy框架中分两类爬虫,Spider类和CrawlSpider类. 它是Spider的派生类,Spider类的设计原则是只爬取start_url列表中的网页, 而CrawlSpider类定义了一些规则(rule)来提供跟进link的方便的机制,从爬取的网页中获取link并继续爬取的工作更适合. 创建项目指令: scrapy startproject sumPro CrawlSpider创建: scrapy genspider -t crawl sun "http:/

Scrapy精华教程(六)——自动爬取网页之II(CrawlSpider)

一.目的. 在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中使用基于Spider实现了自己的w3cschool_spider,并在items.py中定义了数据结构, 在pipelines.py中实现获得数据的过滤以及保存. 但是以上述方法只能爬取start_url列表中的网页,而网络爬虫如google等搜索引擎爬虫实现的就是对整个互联网的爬取,所以在本教程中研究使用scrapy自动实现多网页爬取功能. 在教程(五)