gpt4 book ai didi

java - 在Java的帮助下爬行网页以获取与关键字相关的有意义内容的最佳方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:13 26 4
gpt4 key购买 nike

我尝试使用 JSOUP 类似下面的代码,但对于多个关键字和在网页中多次出现的关键字来说,它似乎效果不佳。
除此之外,当像 http://www.dataplumbing.com/ 这样的页面时就我们而言,“主页”、“博客”、“数据科学中心”等导航链接(黑色)以及页面底部的版权和页面底部的服务条款也可以使用 jsoup 作为文本进行访问,尽管属于它的标签已被删除。
我需要做的就是从单个网页获取与关键字相关的内容。除 jsoup 之外的任何更好的方法也受到欢迎。提前致谢。

       for(int x=0;x<urls.size();x++)
{

Document doc = Jsoup.connect(urls.get(x)).userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36").referrer("http://www.google.com").ignoreContentType(true).timeout(60*1000).get();
String outputString = Jsoup.clean(doc.html(), Whitelist.basic().removeTags("ul","li","a","span","img"));
outputString = StringEscapeUtils.unescapeHtml(outputString);
System.out.println(outputString);
Document doc1=Jsoup.parse(outputString);
String result=doc1.text();
BreakIterator iterator = BreakIterator.getSentenceInstance(Locale.ENGLISH);
iterator.setText(result);
int start = iterator.first();
ArrayList<String> ls=new ArrayList<String>();

for (int end = iterator.next();
end != BreakIterator.DONE;
start = end, end = iterator.next()) {

ls.add(result.substring(start,end));
}



for(int y=0;y<urlkeys.size();y++){
for(int a=0;a<ls.size();a++)
{
if(ls.get(a).toLowerCase().contains(urlkeys.get(y).toLowerCase()))
{
System.out.println(ls.get(a));

}

}
}

}

最佳答案

当您使用方法text()时,你得到了

the combined text of the element and all its children with whitespace is normalized and trimmed.

就您而言,您使用的是 doc.text(),因此您可以获得整个文档的所有文本。

您必须更具体地了解您想要网页的哪些部分,但是可以通过CSS selectors来实现抓取博客文章。 :

// retrieve web page source code
Document doc = Jsoup.connect("http://www.dataplumbing.com/").get();

// use css selectors to find the blog entries
Elements blogs = doc.select("article .entry-title > a");

// iterate the blogs and extract the title and link
for (Element blog : blogs) {
String blogTitle = blog.ownText();
String blogLink = blog.absUrl("href");
System.out.println(String.format("title=%s url=%s", blogTitle, blogLink));
}

输出

title=Data Preparation & Modeling for Campaign Optimization url=http://www.dataplumbing.com/blog/data-preparation-modeling-for-campaign-optimization
title=Demand for IoT Sensors in the Automotive Industry Drives IoT Sensors Market url=http://www.dataplumbing.com/blog/demand-for-iot-sensors-in-the-a
utomotive-industry-drives-iot-sens
title=Data Lakes Still Need Governance Life Vests url=http://www.dataplumbing.com/blog/data-lakes-still-need-governance-life-vests
...

关于java - 在Java的帮助下爬行网页以获取与关键字相关的有意义内容的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38246369/

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