挺乱的,临时存一下

package cn.hanquan.craw;import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.regex.Pattern;public class HtmlText {public static String SRC = "FirstPage.html";public static void main(String[] args) throws IOException {// 爬取网页写进txtInputStream is2 = UrlCrawBoke.doGet("https://blog.csdn.net/sinat_42483341/article/details/95988975");String pageStr = UrlCrawBoke.inputStreamToString(is2, "UTF-8");is2.close();FileWriter is1 = new FileWriter("before.txt");is1.write(pageStr); // 可以用 write("666")is1.close();// 正则提取:从html中提取纯文本String after = Html2Text(pageStr.toString());FileWriter is = new FileWriter("after.txt");is.write(after); // 可以用 write("666")is.close();System.out.println(after);}// 从html中提取纯文本public static String Html2Text(String inputString) {String htmlStr = inputString; // 含html标签的字符串String textStr = "";java.util.regex.Pattern p_script;java.util.regex.Matcher m_script;java.util.regex.Pattern p_style;java.util.regex.Matcher m_style;java.util.regex.Pattern p_html;java.util.regex.Matcher m_html;try {String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; // 定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script>String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; // 定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style>String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);m_script = p_script.matcher(htmlStr);htmlStr = m_script.replaceAll(""); // 过滤script标签p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);m_style = p_style.matcher(htmlStr);htmlStr = m_style.replaceAll(""); // 过滤style标签p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);m_html = p_html.matcher(htmlStr);htmlStr = m_html.replaceAll(""); // 过滤html标签textStr = htmlStr;} catch (Exception e) {System.err.println("Html2Text: " + e.getMessage());}// 剔除空格行textStr = textStr.replaceAll("[ ]+", "");textStr = textStr.replaceAll("1", "").replaceAll("2", "").replaceAll("3", "").replaceAll("4", "").replaceAll("5", "").replaceAll("6", "").replaceAll("7", "").replaceAll("8", "").replaceAll("9", "").replaceAll("0", "");textStr = textStr.replaceAll("(?m)^\\s*$(\\n|\\r\\n)", "");textStr = textStr.replaceAll("\t", "");textStr = textStr.replaceAll("&nbsp;", "").replace("&gt;", "").replace("&mdash;", "");// 还有什么 查一查textStr = textStr.replaceAll("\\\\", "");// 正则表达式中匹配一个反斜杠要用四个反斜杠textStr = textStr.replaceAll("\r\n", "");textStr = textStr.replaceAll("\n", "");return textStr;// 返回文本字符串}
}class UrlCrawBoke {public static InputStream doGet(String urlstr) throws IOException {URL url = new URL(urlstr);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36");InputStream inputStream = conn.getInputStream();return inputStream;}public static String inputStreamToString(InputStream is, String charset) throws IOException {byte[] bytes = new byte[1024];int byteLength = 0;StringBuffer sb = new StringBuffer();while ((byteLength = is.read(bytes)) != -1) {sb.append(new String(bytes, 0, byteLength, charset));}return sb.toString();}
}

【Java爬虫】爬取网页中的内容,提取其中文字相关推荐

  1. python java 爬数据_如何用java爬虫爬取网页上的数据

    当我们使用浏览器处理网页的时候,有时候是不需要浏览的,例如使用PhantomJS适用于无头浏览器,进行爬取网页数据操作.最近在进行java爬虫学习的小伙伴们有没有想过如何爬取js生成的网络页面吗?别急 ...

  2. 用Python写一个网络爬虫爬取网页中的图片

    写一个爬虫爬取百度贴吧中一个帖子图片 网址:壁纸 用谷歌浏览器的开发工具检查网页,可以发现其每一张图片都有如下格式 <img class="BDE_Image" src=&q ...

  3. python爬虫——爬取网页中的图片(正则表达式)

    爬取网站:站长之家 网址:辞旧迎新,字体超市携各品牌字体一起来送虎年祝福啦! # import requests import re import osif __name__ == '__main__ ...

  4. r语言html爬虫,如何用R语言爬取网页中的表格

    今天我们要讲怎么样用R写一个小的爬虫,来爬取网页中的表格.这里的网页指html页面.稍微百度一下大家就可以知道,html是一种高度结构化的文本标记语言.html表格所用的标签是 . 所以我们的思路大概 ...

  5. java抓取页面表格_用java实现爬虫抓取网页中的表格数据功能源码

    [实例简介] 使用java代码基于MyEclipse开发环境实现爬虫抓取网页中的表格数据,将抓取到的数据在控制台打印出来,需要后续处理的话可以在打印的地方对数据进行操作.包解压后导入MyEclipse ...

  6. Java爬虫 爬取某招聘网站招聘信息

    Java爬虫 爬取某招聘网站招聘信息 一.系统介绍 二.功能展示 1.需求爬取的网站内容 2.实现流程 2.1数据采集 2.2页面解析 2.3数据存储 三.获取源码 一.系统介绍 系统主要功能:本项目 ...

  7. Java爬虫抓取网页数据(抓取慕课网论坛为实例)

    1. 网络爬虫 网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人.其目的一般为编纂网络索引.简单来说,就是获取请求的页面源码,再通过正则表达 ...

  8. java爬虫爬取笔趣阁小说

    java爬虫爬取笔趣阁小说 package novelCrawler;import org.jsoup.Connection; import org.jsoup.HttpStatusException ...

  9. 我的第一个开源项目:Java爬虫爬取旧版正方教务系统课程表、成绩表

    Java爬虫爬取旧版正方教务系统课程表.成绩表 一.项目展示 1.正方教务系统 首页 2.爬虫系统 首页: 成绩查询: 课表查询: 二.项目实现 1.爬取思路描述 无论是成绩查询或课表查询亦或者其它的 ...

最新文章

  1. ubuntu在系统启动logo过后无法进入桌面的处理方法
  2. Android源代码介绍,Android-Log源码详解
  3. vscode新建Git项目
  4. ES6对象(3):类的继承
  5. Good Bye 2017 G. New Year and Original Order 数位dp + 按数贡献
  6. [react] 在React中声明组件时组件名的第一个字母必须是大写吗?为什么?
  7. HDOJ 1233 (克鲁斯卡尔+并查集)
  8. python下载完是什么样的图片_[宅男福利]用Python下载页面中所有的图片
  9. #10015 灯泡(无向图连通性+二分)
  10. 分享 上班族兼职项目——存着慢慢看很有用
  11. [转贴]搜索引擎优化(SEO)菜鸟版@搜索引擎研究专案
  12. 微信小程序《消灭病毒》抓包修改数据
  13. gitLab 修改文件夹名称
  14. 研究了那么多内容后,我们打算推荐这些公众号给你
  15. 柔性制造物料抓取及加工系统设计
  16. 景区大数据可视化交互系统-全方位旅游服务平台,打造景区信息数据管理分析平台
  17. “好好说话,别伤人。”
  18. 使用spark.streaming.kafka.consumer.poll.ms和reconnect.backoff.ms解决spark streaming消费kafka时任务不稳定的问题
  19. win10重启电脑Java环境变量丢失问题
  20. 8g内存一般占用多少_电脑8G内存够用吗?

热门文章

  1. (转)离散化:两种离散化方式详解
  2. opencv4 python 版本_Opencv4 with Python3.6
  3. ubuntu mysql安装_在 Ubuntu 18.0-10上安装 MySQL8
  4. 动态规划算法-07背包问题进阶
  5. 排序算法-03希尔排序(python实现)
  6. SpringBoot跨域请求
  7. 利用JSP编写程序初步
  8. POJ3020深度解析(二分图--最小路径覆盖)
  9. 一个DDOS病毒的分析(一)
  10. SQLLite (四):sqlite3_prepare_v2,sqlite3_step