导航:首页 > 净水问答 > jsoup过滤所有网址

jsoup过滤所有网址

发布时间:2021-03-21 03:19:26

1. Jsoup抓取的网址中含有中文和中文标点是乱码,报错

用jsoup,一般不用设置编码方式

2. 如何使用jsoup或其他方法删除网页中的js代码部分

查查api不就好了,上面都说明的,官网上也有一些例子
String html = <divhello <sworld</s</div<script type=\text/javascript\function hello(){alert(1);}</script<spanmy name is tony</span;
Whitelist whitelist = Whitelist.relaxed();//创建relaxed的过滤
Document doc = Jsoup.parseBodyFragment(html);
whitelist.addTags(span,s);//添加relaxed里面没有的标签
Cleaner cleaner = new Cleaner(whitelist);
doc = cleaner.clean(doc);//按照过滤器清除
//doc.outputSettings().prettyPrint(false);//是否格式化
Element body = doc.body();
System.out.println(doc.html());//完整的html字符串

3. 哥,如何运用java取得某一链接网址中所有的链接网址并存储然后我再调用HttpURLConnection判断链接有效性

哈哈,这个问题有点意思。

推荐给你两个工具,自己研究下:
1. Apache HttpClient 用于发送请求,得到网页内容;
2. JSoup 用于解析Html;

其他就是体力活了,但是JSoup很强大,语法类似jQuery。

Happy Coding!

4. 我再用jsoup写爬虫时,想要获取页面的所有子链接代码如下:

这样就可以啦!!!

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Teste {
public static void main(String[] args) {
try {
Document doc = Jsoup.connect("http://news.sina.com.cn/")
.userAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.15)")
.timeout(5000).get();
Elements hrefs = doc.select("a[href]");
for(Element elem:hrefs){
System.out.println(elem.attr("abs:href"));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

5. 我需要一个匹配URL的正则表达式,http://``````/request=GetCapabilities&service= 省略号的是某一个网

干嘛需要用正则,网络爬虫非常方便就能提取所有网页URL。。。。

去看看jsoup这个东西吧。非常方便的。。。。。。。

6. java提取网站内部所有URL

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.List;

public class GetLinks {
private String webSource;
private String url;

public GetLinks(String url) throws MalformedURLException, IOException {
this.url = Complete(url);
webSource = getWebCon(this.url);
}

private String getWebCon(String strURL) throws MalformedURLException,
IOException {
StringBuffer sb = new StringBuffer();
java.net.URL url = new java.net.URL(strURL);
BufferedReader in = new BufferedReader(new InputStreamReader(url
.openStream()));
String line;
while ((line = in.readLine()) != null) {
sb.append(line);
}
in.close();
return sb.toString();
}

private String Complete(String link)throws MalformedURLException{
URL url1 = new URL(link);
URL url2 = new URL(link+"/");
String handledUrl = link;
try{
StringBuffer sb1 = new StringBuffer();
BufferedReader in1 = new BufferedReader(new InputStreamReader(url1
.openStream()));
String line1;
while ((line1 = in1.readLine()) != null) {
sb1.append(line1);
}
in1.close();

StringBuffer sb2 = new StringBuffer();
BufferedReader in2 = new BufferedReader(new InputStreamReader(url2
.openStream()));
String line2;
while ((line2 = in2.readLine()) != null) {
sb2.append(line2);
}
in1.close();

if(sb1.toString().equals(sb2.toString())){
handledUrl = link+"/";
}
}catch(Exception e){
handledUrl = link;
}
return handledUrl;

}

/**
* 处理链接的相对路径
* @param link 相对路径或绝对路径
* @return 绝对路径
*/
private String urlHandler(String link) {
if (link == null)
return null;
link = link.trim();

if (link.toLowerCase().startsWith("http://")
|| link.toLowerCase().startsWith("https://")) {
return link;
}
String pare = url.trim();
if (!link.startsWith("/")) {
if (pare.endsWith("/")) {
return pare + link;
}

if (url.lastIndexOf("/") == url.indexOf("//") + 1 || url.lastIndexOf("/") == url.indexOf("//") + 2) {
return pare + "/" + link;
} else {
int lastSeparatorIndex = url.lastIndexOf("/");
return url.substring(0, lastSeparatorIndex + 1) + link;
}
}else{
if (url.lastIndexOf("/") == url.indexOf("//") + 1 || url.lastIndexOf("/") == url.indexOf("//") + 2) {
return pare + link;
}else{
return url.substring(0,url.indexOf("/", url.indexOf("//")+3)) + link;
}
}
}

public List<String> getAnchorTagUrls() {
if (webSource == null) {
System.out.println("没有网页源代码");
return null;
}
ArrayList<String> list = new ArrayList<String>();
int index = 0;
while (index != -1) {
index = webSource.toLowerCase().indexOf("<a ", index);
if (index != -1) {
int end = webSource.indexOf(">", index);
String str = webSource.substring(index, end == -1 ? webSource
.length() : end);
str = str.replaceAll("\\s*=\\s*", "=");
if (str.toLowerCase().matches("^<a.*href\\s*=\\s*[\'|\"]?.*")) {// "^<a\\s+\\w*\\s*href\\s*=\\s*[\'|\"]?.*"
int hrefIndex = str.toLowerCase().indexOf("href=");
int leadingQuotesIndex = -1;
if ((leadingQuotesIndex = str.indexOf("\"", hrefIndex
+ "href=".length())) != -1) { // 形如<a
// href=".....">
int TrailingQuotesIndex = str.indexOf("\"",
leadingQuotesIndex + 1);
TrailingQuotesIndex = TrailingQuotesIndex == -1 ? str
.length() : TrailingQuotesIndex;
str = str.substring(leadingQuotesIndex + 1,
TrailingQuotesIndex);
str = urlHandler(str);
list.add(str);
System.out.println(str);
index += "<a ".length();
continue;
}

if ((leadingQuotesIndex = str.indexOf("\'", hrefIndex
+ "href=".length())) != -1) { // 形如<a
// href='.....'>
int TrailingQuotesIndex = str.indexOf("\'",
leadingQuotesIndex + 1);
TrailingQuotesIndex = TrailingQuotesIndex == -1 ? str
.length() : TrailingQuotesIndex;
str = str.substring(leadingQuotesIndex + 1,
TrailingQuotesIndex);
str = urlHandler(str);
System.out.println(str);
list.add(str);
index += "<a ".length();
continue;
}

int whitespaceIndex = str.indexOf(" ", hrefIndex
+ "href=".length()); // 形如<a href=
// http://www..com >
whitespaceIndex = whitespaceIndex == -1 ? str.length()
: whitespaceIndex;
str = str.substring(hrefIndex + "href=".length(),
whitespaceIndex);
str = urlHandler(str);
list.add(str);
System.out.println(str);

}
index += "<a ".length();
}
}
return list;
}

public static void main(String[] args) throws Exception {
GetLinks gl = new GetLinks("http://www..com");
List<String> list = gl.getAnchorTagUrls();
for(String str:list) {
System.out.println(str);
}
}
}

7. 如何不让jsoup.parse过滤标签

//过滤内容中的非法标签
org.jsoup.nodes.Document document = Jsoup.parse(html);
//只过滤body内容
org.jsoup.nodes.Document body = Jsoup.parse(document.body().html());
//自定义的标签白名单
Cleaner cleaner = new Cleaner(WhitelistFactory.createWhitelist(WhitelistFactory.EPUB20));
org.jsoup.nodes.Document bodyCleaned = cleaner.clean(body);
document.body().html(bodyCleaned.html());
String newHtml = document.html();

8. jsoup 过滤指定标签问题JAVA

for(Elementlink:links){
//通过link.child(index)或link.getElementsBy<attr>(key,value)获得部分子节点
mArrayList.add(link.text());
}

9. java中用Jsoup如何抓取不同页内容(该网址不同页地址相同)

抓到一个页面 在里面分析 有没有 href 拼接 继续抓

下一页 用的是表单提交 监听下表单提交的参数 模拟下

10. jsoup如何筛选属性

提示的很清楚了,helloAction类找不到。先不要用注入的方式试一下,如果可以,那就是你Spring配置的问题;如果不可以,那就是你Struts2没配对
请采纳答案,支持我一下。

阅读全文

与jsoup过滤所有网址相关的资料

热点内容
液相用溶剂过滤器 浏览:674
纳滤水导电率 浏览:128
反渗透每小时2吨 浏览:162
做一个纯净水工厂需要多少钱 浏览:381
最终幻想4回忆技能有什么用 浏览:487
污水提升器采通 浏览:397
反渗透和不发渗透净水器有什么区别 浏览:757
提升泵的扬程 浏览:294
泽德提升泵合肥经销商 浏览:929
饮水机后盖漏水了怎么办 浏览:953
小型电动提升器 浏览:246
半透膜和细胞膜区别 浏览:187
废水拖把池 浏览:859
十四五期间城镇污水处理如何提质增效 浏览:915
怎么测试空气净化器的好坏 浏览:519
提升泵是干嘛的 浏览:744
布油做蒸馏起沫咋办 浏览:252
广州工业油烟净化器一般多少钱 浏览:204
喜哆哆空气净化器效果怎么样 浏览:424
油烟净化器油盒在什么位置 浏览:582