⑴ 用HTMLParser過濾掉html中所有標簽,留下標題正文等內容,java
現在的網頁,取來title容易,要取到整齊的內源容,就麻煩了。既然是爬蟲,又不可能針對每個頁面都寫一遍。所以,你能解決這問題,是高智商、是值錢的。
<title>和</title>可以認為是標題,用字元串的處理方法即
<content>和</content>不是標準的HTML,不能認為之間的文字就是內容 。雖然<body>和</body>是,可之間的內容也太亂了。
⑵ java 如何過濾html代碼,只保留中文或英文及基本常用符號
很容易,首先建立一個字元串數組,也就是你需要過濾掉的html標簽String[] filterArrays = new String[]{"<html>","</html>","<table>","</table>".....一系列內有關html標簽的東西}
當你得到一容個html代碼的字元串時你可以循環遍歷上面的數組,然後調用String自帶的方法replaceAll();
我給你簡單的示範一下啊
String str = "dfgdgdfgdgd";//需要過濾的帶有HTML標簽的代碼字元串
for(int i=0;i<filterArrays.length;i++){
if(str.indexOf(filterArrays[i])!=0){
str = str.replaceAll(filterArrays[i],"");//將html標簽替換成了空格
}
}
這樣就搞定了,主要是你需要在filterArrays中增加你需要過濾的字元串,當然還會有更好的辦法,可以不用增加這樣的數組,因為出現"<"必然會有">",或者"/>"這樣的標簽,但是這樣做可能會將一些無關的也過濾掉了,總之兩種方法都可以,第一種呢我都給你寫了例子!祝你成功啊
⑶ 正則表達式,清除HTML標簽,但要保留 <BR>和<IMG>標簽,其他的清除
把除了<BR> </BR> <BR/> <IMG> </IMG>的<xxxx>都刪除(i表示忽略大小寫):
########### JS ##########
replace(/<(?!\/?BR|\/?IMG)[^<>]*>/ig,'')
########### PERL ##########
s/<(?!\/?BR|\/?IMG)[^<>]*>//ig
疏忽了,有些地方沒考慮全,感謝yp2010的提示,以上作了完善,把<IMG XXX> <BR XXX>也保留了。
⑷ 求一個php簡單的過濾除<br>,<p>,<style>html標簽的正則或方法
針對你這個<a>123</a>的例子的
$a=<<<str
<a>123</a>
str;
$preg ="/<(a)>(.*?)<\/(\1)>/is";
$str = preg_replace($preg, "<a>\\2</a>", $a);
echo $str;
除此之外PHP還有一個 過濾標簽的函內數 你可以看容一下手冊
⑸ java正則表達式去除html標簽保留指定標簽
String reg = "<\\/?html[^>]*>";
String html = "";
html.replaceAll(reg,"");
⑹ java正則表達式過濾html p標簽
用JavaScript方法如下,JAVA語言類似:
'你的HTML文本'.replace(/.+>(.+)<.+/,'$1')
⑺ java中如何過濾html的代碼
把需要寫入資料庫的字元通過下面的方法過濾然後內再寫入 public static String converthtml(String input) { if (input == null ||容 input.length() == 0) { return input; } StringBuffer buf = new StringBuffer(input.length() + 6); char ch = ' '; for (int i = 0; i < input.length(); i++) { ch = input.charAt(i); if (ch == '&') { buf.append("&"); } else if (ch == '<') { buf.append("<"); } else if (ch == '>') { buf.append(">"); } else if (ch == ' ') { buf.append(""); } else { buf.append(ch); } } return buf.toString(); }
希望採納
⑻ 在Java截取字元串的時候,如何過濾掉html標簽
去除html標簽
function
strip_tags($string,
$replace_with_space
=
true)
{
if
($replace_with_space)
{
return
preg_replace('!<[^>]*?>!',
'
',
$string);
}
else
{
return
strip_tags($string);
}
}
截取字元函數(匹配各種編碼)
function
truncate($string,
$length
=
80,
$etc
=
'...',
$break_words
=
false,
$middle
=
false){
if
($length
==
0)
return
'';
if
(is_callable('mb_strlen'))
{
if
(mb_detect_encoding($string,
'utf-8,
iso-8859-1')
===
'utf-8')
{
//
$string
has
utf-8
encoding
if
(mb_strlen($string)
>
$length)
{
$length
-=
min($length,
mb_strlen($etc));
if
(!$break_words
&&
!$middle)
{
$string
=
preg_replace('/\s+?(\s+)?$/u',
'',
mb_substr($string,
0,
$length
+
1));
}
if
(!$middle)
{
return
mb_substr($string,
0,
$length)
.
$etc;
}
else
{
return
mb_substr($string,
0,
$length
/
2)
.
$etc
.
mb_substr($string,
-
$length
/
2);
}
}
else
{
return
$string;
}
}
}
//
$string
has
no
utf-8
encoding
if
(strlen($string)
>
$length)
{
$length
-=
min($length,
strlen($etc));
if
(!$break_words
&&
!$middle)
{
$string
=
preg_replace('/\s+?(\s+)?$/',
'',
substr($string,
0,
$length
+
1));
}
if
(!$middle)
{
return
substr($string,
0,
$length)
.
$etc;
}
else
{
return
substr($string,
0,
$length
/
2)
.
$etc
.
substr($string,
-
$length
/
2);
}
}
else
{
return
$string;
}
}
綜合就是
$arc=strip_tags($arc);
⑼ java 如何利用正則表達式只保留html裡面的<p></p>標簽裡面的內容
正則表達式:<p.*?>(.*?)</p>
group(1)為正文內容。
輸出時加上\n就行了
import java.util.regex.*;
public class Test{
public static void main(String[] args){
String str="<p style=\"font-size:1.3em;font-weight:bold\">No page with that title exists.</p> ";
String regex="<p.*?>(.*?)</p> ";
Pattern p =Pattern.compile(regex);
Matcher m=p.matcher(str);
while(m.find()){
System.out.println(m.group(1));
}
}
}
⑽ java 如何去除html中的一個指定標簽和指定標簽里的內容
你好,可以用正則表達式。比如想要去除id為test的div標簽及其內容:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Person{
public static void main(String[] args) {
//正則表達專式
Pattern p = Pattern.compile("<div.*id='test'.*</div>");
//測試用的html代碼
String str = "<html><body>aa<div id='test'>bb</div></body></html>";
Matcher m = p.matcher(str);
//去除標簽屬
String result = m.replaceAll("");
System.out.println(result);
}
}