MiseringThread.java 解析页面线程
MiseringThread.java 解析页面线程
http://injavawetrust.iteye.com
package com.iteye.injavawetrust.miner;import java.util.Set;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;/*** 解析页面线程* @author InJavaWeTrust**/
public class MiseringThread extends Thread {private static final Log LOG = LogFactory.getLog(MiseringThread.class);private MinerConfig config = null;public MiseringThread(MinerConfig config) {this.config = config;}@Overridepublic void run() {while (!MinerMonitorThread.done) {misering();}}private synchronized void misering() {Html html = MinerQueue.waitingMiseringPoll(); // 等待提取URL的分析页面出队列if (null == html || MinerUtil.isBlank(html.getHtml())) {return;}//当前页面深度<爬取深度 取出当前页面全部URLif (html.getDepth() < config.getMaxDepth()) {LOG.info("MiseringThread获取页面[" + html.getUrl() + "]下所有URL。。。。。。 当前线程 [" + Thread.currentThread().getName() + "]");Set<String> urls = MinerUtil.getAllUrl(html.getUrl());for(String url : urls){if(null == url || url.equals("")){continue;}if(url.substring(url.length() - 1, url.length()).equals("/")){url = url.substring(0, url.length() - 1);}MinerUrl minerUrl = new MinerUrl();minerUrl.setUrl(url);minerUrl.setDepth(html.getDepth() + 1); // 爬取深度+1// 判断URL列表是否包含关键字if(!MinerUtil.checkKeys(url, config.getKeys())){continue;}// 添加到待访问队列,每个URL只访问一次MinerQueue.addUnVisited(minerUrl);// 将页面URL 添加到URL队列 保证每个URL只访问一次MinerQueue.addUrlSet(minerUrl.getUrl()); }}}}
返回列表
转载于:https://www.cnblogs.com/muyuge/p/6152077.html
MiseringThread.java 解析页面线程相关推荐
- java解析页面table表格内容导出为excel
最近,因为项目中需要做到各个终端兼容,所以在报表预览时必须通用,所以采用后台生成html表格代码,前台通过jquery的load方法载入设置到指定位置. 生成excel时,通过解析html表格操作,就 ...
- Java 解析线程的几种状态详解
Java 解析线程的几种状态详解 1. 线程的5种状态 从操作系统层面上,任何线程一般都具有五种状态,即创建.就绪.运行.阻塞.终止. (1) 新建状态(NEW) 在程序中用构造方法创建一个新线程时, ...
- java解析网页全过程_Web页面的解析过程
博文转自:http://hi.baidu.com/moniteryao/item/e851425177262ba8adc8577f 页面的解析过程,这里说的过程不是我们常说的ASP.NET页面的生命周 ...
- Java并发编程——线程池的使用
在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统 ...
- java new一个线程执行完后会自动销毁吗_Java基础总结,超级全的面试题
1. static关键字是什么意思?Java 中是否可以覆盖(override)一个 private 或者是 static 的方法?是否可以在 static 环境中访问非static 变量? stat ...
- Java解析XML(DOM解析和SAX解析)
前言:在程序中访问和操作XML文件一般有两种模型:DOM(文档对象模型)和流模型:在本篇文章中分别对应DOM解析和SAX解析. 目录 1 .DOM解析与SAX解析的相关知识点 1.1 DOM 1.2 ...
- java 解析 csv 文件
文章分类:JavaEye 一.貌似有bug,不行用 二.或 三. 的方法 Java代码 import java.io.BufferedReader; import java.io.FileInpu ...
- 【Java 集合】Java 集合的线程安全性 ( 加锁同步 | java.utils 集合 | 集合属性 | java.util.concurrent 集合 | CopyOnWrite 机制 )
文章目录 I . Java 集合的线程安全概念 ( 加锁同步 ) II . 线程不安全集合 ( 没有并发需求 推荐使用 ) III . 集合属性说明 IV . 早期的线程安全集合 ( 不推荐使用 ) ...
- Java解析HTML
使用Java解析HTML很简单,使用jsoup.jar来解析,使用起来和jquery差不多 下面是两个例子 1.解析web页面 1 import org.jsoup.Connection; 2 imp ...
最新文章
- python不能加密吗_为什么我不能解密我用pycrypto加密的内容?
- 培养积极状态的八个方法
- 利用STC8G1K08实现的数字信号合成模块
- win7网络适配器_Win7系统笔记本电脑连接蓝牙音箱的操作方法
- MySQL 笔记3 -- SQL 语言
- 详解摄像头各个引脚的作用关系
- Android学习笔记(一)——控件布局常用属性
- Android 4 编程入门经典
- Oracle中NB的中文处理
- 铁大自动选课工具使用说明
- 推荐一款基于.Net Core开发简约漂亮的 WPF UI库
- 读书笔记-《墨菲定律》
- 模拟登陆115网盘(MFC版)
- ubuntu系统下抓取屏幕
- 多家国产独立游戏厂商发布反淘宝盗版联合声明
- 爬虫学习笔记(三)——利用JSON爬取豆瓣热映的使用
- 推荐一款好用的固定资产管理系统
- 微信提现(1)---企业现金红包方式
- 真的,我现在特讨厌 Safari 浏览器!
- Linux下为命令取别名
热门文章
- [转]给控件做数字签名
- [Redux/Mobx] 说说Redux的实现流程
- Taro+react开发(21)--注意参数格式
- [vue] 你有写过自定义指令吗?自定义指令的生命周期(钩子函数)有哪些?
- 前端学习(2024)vue之电商管理系统电商系统之根据分页获取订单列表数据
- 前端学习(1753):前端调试值之网络请求面板的按钮使用说明
- 前端学习(1671):前端系列实战课程之透明度运动效果实现思路
- 前端学习(1272):Vue前端路由
- 前端学习(170):无语义元素二
- spring mvc学习(26):处理数据模型--从表单到controller传输数据