Q
维基百科第一段
4
A
回答
8
这非常简单,并且对于从中提取信息的每个半结构化页面而言,该过程都非常相似。
首先,你必须唯一标识DOM元素,其中所需要的信息就在于要做到这一点是使用Web开发工具最简单的方法,如Firebug在Firefox或附带捆绑的那些IE(> 6,我认为)和Chrome。
使用文章Potato作为一个例子,你会发现,<p>
aragraph你感兴趣的是,在以下块:
<div class="mw-content-ltr" lang="en" dir="ltr">
<div class="metadata topicon" id="protected-icon" style="display: none; right: 55px;">[...]</div>
<div class="dablink">[...]</div>
<div class="dablink">[...]</div>
<div>[...]</div>
<p>The potato [...]</p>
<p>[...]</p>
<p>[...]</p>
换句话说,你想找到的第一个<p>
元素在div
之内,class
称为mw-content-ltr
。
然后,您只需要选择与jsoup该元素,例如使用其选择的语法(这是非常类似jQuery的):
public class WikipediaParser {
private final String baseUrl;
public WikipediaParser(String lang) {
this.baseUrl = String.format("http://%s.wikipedia.org/wiki/", lang);
}
public String fetchFirstParagraph(String article) throws IOException {
String url = baseUrl + article;
Document doc = Jsoup.connect(url).get();
Elements paragraphs = doc.select(".mw-content-ltr p");
Element firstParagraph = paragraphs.first();
return firstParagraph.text();
}
public static void main(String[] args) throws IOException {
WikipediaParser parser = new WikipediaParser("en");
String firstParagraph = parser.fetchFirstParagraph("Potato");
System.out.println(firstParagraph); // prints "The potato is a starchy [...]."
}
}
2
1
席尔瓦提出的解决方案中的“JavaScript”和“United States”适用于大多数情况下,除了喜欢的内容。段落应选为doc.select(“。mw-body-content p”);
检查this GitHub代码的更多细节。您还可以从HTML中删除一些元数据信息以提高准确性。
相关问题
- 1. PHP +维基百科:从维基百科文章的第一段获取内容?
- 2. 如何从维基百科页面刮取第一段?
- 3. 从维基百科文章(Python)中提取第一段
- 4. 从维基百科中检索第一段
- 5. 检索维基百科文章的第一段
- 6. 从维基百科获取文章的第一段
- 7. 维基百科API
- 8. 从维基百科获取维基百科主题标题
- 9. API为维基百科的
- 10. wikitools,维基百科和python
- 11. 脚本从维基百科
- 12. 寻找从维基百科
- 13. 维基百科与Python
- 14. 解析XML维基百科
- 15. 解析维基百科类
- 16. 维基百科人物API
- 17. 提取维基百科
- 18. 维基百科web框架?
- 19. 维基百科的JAVA API
- 20. 维基百科解析器
- 21. 访问维基百科webservices
- 22. lucene维基百科查询
- 23. 迭代维基百科
- 24. 获取维基百科API
- 25. 来自维基百科的一群人
- 26. 维基百科文章的第一句和Java
- 27. 忽略维基百科维护类别
- 28. 维基百科:Java库删除维基百科文本标记删除
- 29. 扩展模板和wikitext在维基百科html(复制维基百科)
- 30. 基本的BeautifulSoup维基百科刮
你好,非常感谢你的确。建议的解决方案完美运作。 – Lida