10

Pocket(別名Read It Later)ソフトウェアと同様に、HTMLコードをクリーンアップし、ゴミを削除することで、HTMLページから記事のテキストコンテンツを抽出するためのオープンソースフレームワークまたはアルゴリズムを探しています。

Pocketの公式ウェブページ:http://getpocket.com/

この質問はリンクの下ですでに利用可能です: 後で読むまたはInstaPaper Iphoneアプリのようなhtmlからテキストコンテンツを抽出する方法は? しかし、私の要件は少し異なります。フォントとスタイル(CSS)を保持して、HTMLをクリーンアップし、画像でメインコンテンツを抽出したいと思います。

4

2 に答える 2

17

HtmlAgilityPackと一緒にNReadabilityをお勧めします

readInnerNReadabilityがページをトランスコードした後、メインテキストは常にidでdivになります。

//** replace this with any url **
string url = "http://www.bbc.co.uk/news/world-asia-19457334";

var t = new NReadability.NReadabilityWebTranscoder();
bool b;
string page = t.Transcode(url, out b);

if (b)
{
    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
    doc.LoadHtml(page);

    var title = doc.DocumentNode.SelectSingleNode("//title").InnerText;
    var imgUrl = doc.DocumentNode.SelectSingleNode("//meta[@property='og:image']").Attributes["content"].Value;
    var mainText = doc.DocumentNode.SelectSingleNode("//div[@id='readInner']").InnerText;
}
于 2012-09-02T19:47:37.567 に答える
2

HTMLAgiltyPackを使用します。これは.NET用のオープンソースのHTMLパーサーです。

Html Agility Pack(HAP)とは正確には何ですか?

これは、読み取り/書き込みDOMを構築し、プレーンXPATHまたはXSLTをサポートするアジャイルHTMLパーサーです(実際には、XPATHまたはXSLTを理解して使用する必要はありません。心配しないでください...)。これは、「Web外」のHTMLファイルを解析できるようにする.NETコードライブラリです。パーサーは、「現実世界」の不正な形式のHTMLに対して非常に寛容です。オブジェクトモデルは、System.Xmlを提案するものと非常に似ていますが、HTMLドキュメント(またはストリーム)用です。

これを使用して、HTMLを照会し、必要なデータを抽出できます。

于 2012-09-02T19:39:54.887 に答える