鑑於新聞文章的網頁(來自任何主要新聞來源,如時間或bloomberg),我想確定該網頁上的主要文章內容,並拋出其他misc元素如廣告,菜單,側邊欄,用戶評論。Web抓取 - 如何識別網頁上的主要內容
這樣做的一般方法是什麼,可以在大多數主要新聞網站上使用?
數據挖掘有哪些好的工具或庫? (最好是基於python的)
鑑於新聞文章的網頁(來自任何主要新聞來源,如時間或bloomberg),我想確定該網頁上的主要文章內容,並拋出其他misc元素如廣告,菜單,側邊欄,用戶評論。Web抓取 - 如何識別網頁上的主要內容
這樣做的一般方法是什麼,可以在大多數主要新聞網站上使用?
數據挖掘有哪些好的工具或庫? (最好是基於python的)
沒有辦法做到這一點可以保證正常工作,但是你可以使用的一種策略是試圖找到裏面最明顯文本的元素。
我不會試圖從網頁上刮掉它 - 太多的東西可能會搞砸 - 而是看看哪些網站發佈RSS提要。例如,監護人的RSS feed有大部分文字從他們的重要文章:
http://feeds.guardian.co.uk/theguardian/rss
我不知道,如果泰晤士報(倫敦時報,不是紐約州)之一,因爲它是一個付費牆。祝你好運...
我見過的大多數RSS提要只有短文摘要。 – kefeizhou 2011-01-12 18:02:49
有很多方法可以做到這一點,但是,沒有人會一直工作。這裏有兩個最簡單的:
將「真實」內容與噪聲分開的另一種可能性是通過HTML頁面各部分的measuring HTML density。
您將需要一些實驗來提取「真實」內容的閾值,我想您可以通過在識別出有趣的內容之後應用啓發式來指定HTML片段的確切範圍來改進算法。
更新:剛剛發現上面的網址現在不工作; here is an alternative link複製到archive.org的緩存版本。
前一段時間,我爲此任務寫了一個simple Python script。它使用啓發式將文本塊根據它們在DOM中的深度分組在一起。然後認爲文本最多的組是主要內容。這並不完美,但通常適用於新聞網站,文章通常是最大的文本分組,即使分成多個div/p標籤。
你會使用腳本,如:python webarticle2text.py <url>
Diffbot提供免費的(10。000 URL)的API來做到這一點,不知道這種做法是你在找什麼,但它可能會幫助別人http://www.diffbot.com/
對於Java的解決方案來看看https://code.google.com/p/boilerpipe/:
的boilerpipe庫提供算法來檢測和消除網頁主要文本內容周圍的多餘「混亂」(樣板,模板)。
該圖書館已經爲常見任務提供了特定的策略(例如:新聞文章提取),並且也可以很容易地針對單個問題設置進行擴展。
但也有解決這個可以在這裏找到一個Python包裝:
看到Readability`書籤是如何實現的`http://lab.arc90.com/experiments/readability/ – jfs 2011-01-12 18:07:38
一這樣做的瀏覽器將對在線廣告構成巨大威脅。 – 2011-01-12 18:29:12
原始書籤的代碼在這裏:http://code.google.com/p/arc90labs-readability/source/browse/`可讀性`現在是一種服務,它的代碼不可用。 – lsh 2014-03-09 21:47:48