介绍
这篇文章将为大家详细讲解有关怎么在Java中利用正则表达式获取网页内容,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
正则表达式,抓取网页并解析HTML部分内容,,
package com.xiaofeng.picup; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import 并不知道; import java.util.regex.Matcher; import java.util.regex.Pattern;/* *,*//* * * *,@抓取页面文章标题及内容(测试),手动输入网址抓取,可进一步自动抓取整个页面的全部内容 * */public class WebContent …{/* *,才能*//* * ,,*,读取一个网页全部内容 ,,*/public 才能;String  getOneHtml (String htmlurl), throws IOException…{ ,,,URL url; ,,,String 温度; ,,,StringBuffer sb =, new StringBuffer (); ,,,try …{ ,,,,,url =, new URL (htmlurl); ,,,,,BufferedReader 拷贝=,new BufferedReader (new InputStreamReader (url ,,,,,,,,,.openStream (),“utf-8"));//,读取网页全部内容 ,,,,,while ((=temp in.readLine ()), !=, null), {… ,,,,,,,sb.append(临时); ,,,,,} ,,,,,in.close (); ,,,}捕捉(MalformedURLException 我)…{ ,,,,,System.out.println(“你输入的URL格式有问题!请仔细输入“); ,,,,,me.getMessage (); ,,,,,throw 我; ,,,}catch (IOException e), {… ,,,,,e.printStackTrace (); ,,,,,throw e; ,,,} ,,,return sb.toString (); ,,}/* *,才能*//* * ,,* ,,*,@param s ,,*,@return 获得网页标题 ,,*/public 才能;String  getTitle (String s),…{ ,,,String 正则表达式; ,,,String title =,““ ,,,List, list =, new ArrayList (); ,,,regex =,“& lt; title>。* ? & lt;/title>“; ,,,Pattern pa =, Pattern.compile(正则表达式,Pattern.CANON_EQ); ,,,Matcher ma =, pa.matcher(年代); ,,,while (ma.find ()), {… ,,,,,list.add (ma.group ()); ,,,} ,,,for (int 小姐:=,0;,小姐:& lt;, list.size();,我+ +),{… ,,,,,title =, title +, list.get(我); ,,,} ,,,return outTag(标题); ,,}/* *,才能*//* * ,,* ,,*,@param s ,,*,@return 获得链接 ,,*/public 才能;List< String>, getLink (String s),…{ ,,,String 正则表达式; ,,,List , list =, new ArrayList (); ,,,regex =,“& lt;[^祝辞]* href=https://www.yisu.com/zixun/(“([^] *)“|”([^] *)的|([^年代>]*))[^>]*> (. * ?)>”; Pattern.DOTALL pa=Pattern.compile模式(正则表达式); 匹配器马=pa.matcher(年代); 而(ma.find ())…{ list.add (ma.group ()); } 返回列表; }/* * *//* * * * @param年代 * @return获得脚本代码 */公共列表<字符串> getScript (String s) {… 字符串正则表达式; 列表<字符串>=new ArrayList <字符串> (); regex=" <脚本。* ?> 脚本”; Pattern.DOTALL pa=Pattern.compile模式(正则表达式); 匹配器马=pa.matcher(年代); 而(ma.find ())…{ list.add (ma.group ()); } 返回列表; }/* * *//* * * * @param年代 * @return获得CSS */公共列表<字符串> getCSS (String s) {… 字符串正则表达式; 列表<字符串>=new ArrayList <字符串> (); regex=" <风格。* ?> 风格”; Pattern.DOTALL pa=Pattern.compile模式(正则表达式); 匹配器马=pa.matcher(年代); 而(ma.find ())…{ list.add (ma.group ()); } 返回列表; }/* * *//* * * * @param年代 * @return去掉标记 */outTag公共字符串(String)…{ 返回s.replaceAll (“<. * ?> "," "); }
关于怎么在Java中利用正则表达式获取网页内容就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。