gpt4 book ai didi

java - 仅抓取 HTML 页面

转载 作者:行者123 更新时间:2023-11-29 06:11:35 29 4
gpt4 key购买 nike

我只想抓取 html 页面,所以当我在此代码中更改正则表达式时..它仍在抓取一些 xml 页面..任何建议为什么会发生..

public class MyCrawler extends WebCrawler {


Pattern filters = Pattern.compile("(.(html))");

public MyCrawler() {
}

public boolean shouldVisit(WebURL url) {
String href = url.getURL().toLowerCase();
if (filters.matcher(href).matches()) {
return false;
}
if (href.startsWith("http://www.somehost.com/")) {
return true;
}
return false;
}

public void visit(Page page) {
int docid = page.getWebURL().getDocid();

String url = page.getWebURL().getURL();
String text = page.getText();
List<WebURL> links = page.getURLs();
int parentDocid = page.getWebURL().getParentDocid();

System.out.println("Docid: " + docid);
System.out.println("URL: " + url);
System.out.println("Text length: " + text.length());
System.out.println("Number of links: " + links.size());
System.out.println("Docid of parent page: " + parentDocid);
System.out.println("=============");
}
}

最佳答案

该扩展在网络上毫无意义 - 特别是对于较新的“SEO”类型路径。您必须分析它的内容类型。

您可以通过请求(使用 HTTP GET 或可能的 HEAD 方法)每个 URL 并分析其响应 header 来执行此操作。如果 Content-Type 响应 header 不是您想要的,则不必下载它 - 否则它就是您想要查看的内容。

编辑:HTML 应该有 text/html 作为内容类型,XHTML 是 application/xhtml+xml ,这通常取决于您的接受 header 的内容和请求中的用户代理)。

您可以找到有关 HTTP header 的所有信息 here .

关于java - 仅抓取 HTML 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6627830/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com