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