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 解析页面线程相关推荐

  1. java解析页面table表格内容导出为excel

    最近,因为项目中需要做到各个终端兼容,所以在报表预览时必须通用,所以采用后台生成html表格代码,前台通过jquery的load方法载入设置到指定位置. 生成excel时,通过解析html表格操作,就 ...

  2. Java 解析线程的几种状态详解

    Java 解析线程的几种状态详解 1. 线程的5种状态 从操作系统层面上,任何线程一般都具有五种状态,即创建.就绪.运行.阻塞.终止. (1) 新建状态(NEW) 在程序中用构造方法创建一个新线程时, ...

  3. java解析网页全过程_Web页面的解析过程

    博文转自:http://hi.baidu.com/moniteryao/item/e851425177262ba8adc8577f 页面的解析过程,这里说的过程不是我们常说的ASP.NET页面的生命周 ...

  4. Java并发编程——线程池的使用

    在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统 ...

  5. java new一个线程执行完后会自动销毁吗_Java基础总结,超级全的面试题

    1. static关键字是什么意思?Java 中是否可以覆盖(override)一个 private 或者是 static 的方法?是否可以在 static 环境中访问非static 变量? stat ...

  6. Java解析XML(DOM解析和SAX解析)

    前言:在程序中访问和操作XML文件一般有两种模型:DOM(文档对象模型)和流模型:在本篇文章中分别对应DOM解析和SAX解析. 目录 1 .DOM解析与SAX解析的相关知识点 1.1 DOM 1.2 ...

  7. java 解析 csv 文件

    文章分类:JavaEye 一.貌似有bug,不行用 二.或 三. 的方法 Java代码   import java.io.BufferedReader; import java.io.FileInpu ...

  8. 【Java 集合】Java 集合的线程安全性 ( 加锁同步 | java.utils 集合 | 集合属性 | java.util.concurrent 集合 | CopyOnWrite 机制 )

    文章目录 I . Java 集合的线程安全概念 ( 加锁同步 ) II . 线程不安全集合 ( 没有并发需求 推荐使用 ) III . 集合属性说明 IV . 早期的线程安全集合 ( 不推荐使用 ) ...

  9. Java解析HTML

    使用Java解析HTML很简单,使用jsoup.jar来解析,使用起来和jquery差不多 下面是两个例子 1.解析web页面 1 import org.jsoup.Connection; 2 imp ...

最新文章

  1. python不能加密吗_为什么我不能解密我用pycrypto加密的内容?
  2. 培养积极状态的八个方法
  3. 利用STC8G1K08实现的数字信号合成模块
  4. win7网络适配器_Win7系统笔记本电脑连接蓝牙音箱的操作方法
  5. MySQL 笔记3 -- SQL 语言
  6. 详解摄像头各个引脚的作用关系
  7. Android学习笔记(一)——控件布局常用属性
  8. Android 4 编程入门经典
  9. Oracle中NB的中文处理
  10. 铁大自动选课工具使用说明
  11. 推荐一款基于.Net Core开发简约漂亮的 WPF UI库
  12. 读书笔记-《墨菲定律》
  13. 模拟登陆115网盘(MFC版)
  14. ubuntu系统下抓取屏幕
  15. 多家国产独立游戏厂商发布反淘宝盗版联合声明
  16. 爬虫学习笔记(三)——利用JSON爬取豆瓣热映的使用
  17. 推荐一款好用的固定资产管理系统
  18. 微信提现(1)---企业现金红包方式
  19. 真的,我现在特讨厌 Safari 浏览器!
  20. Linux下为命令取别名

热门文章

  1. [转]给控件做数字签名
  2. [Redux/Mobx] 说说Redux的实现流程
  3. Taro+react开发(21)--注意参数格式
  4. [vue] 你有写过自定义指令吗?自定义指令的生命周期(钩子函数)有哪些?
  5. 前端学习(2024)vue之电商管理系统电商系统之根据分页获取订单列表数据
  6. 前端学习(1753):前端调试值之网络请求面板的按钮使用说明
  7. 前端学习(1671):前端系列实战课程之透明度运动效果实现思路
  8. 前端学习(1272):Vue前端路由
  9. 前端学习(170):无语义元素二
  10. spring mvc学习(26):处理数据模型--从表单到controller传输数据