Googleで検索した結果の上位サイトのWebサイトから
人間が「本文欄」「コンテンツ」を書くという意思で書いたコンテンツ(文章、記事)のみを取得したい。
下記のソースの状態だと、HTMLのタグや、なにかしらのスクリプトなども取得されてしまう。
「本文」に該当する文章のみを取得するにはどのようにすればよいでしょうか。
UWSCという開発言語における IEGETDATA のように「ソース」ではなく
「人が見て、記事と思われるもの」のみを取得するのに近い動きにしたい。
UWSCを使って、低スペックのノートパソコン上で実行すると、予定外のエラーが出て作業ができないので
その他の言語で実現をしたい。
手作業でいうと、
(1)目的のサイトをブラウザで表示してブラウザで表示されている内容を全選択してクリップボードにコピー
(2)メモ帳にクリップボードの内容を張り付ける
というのが近いです。
この動作だと、HTMLのタグやアクセス解析等々のスクリプトなどはペーストされないので
ある種のフィルタになって都合がよい。
なんらかのWebサービスかVB.netのスクリプトで実現できないか教えてください。
100サイトのコンテンツを取得する場合、30分以内に処理が完了される程度の処理時間が理想です。
========================================
Module Module1
Sub Main()
Dim V_配列の要素数 V_配列の要素数 = Environment.GetCommandLineArgs.Length Dim V_URL Dim V_ログパス If V_配列の要素数 = 3 Then V_URL = Environment.GetCommandLineArgs.GetValue(1).ToString() V_ログパス = Environment.GetCommandLineArgs.GetValue(2).ToString() Else V_URL = "https://www.yahoo.co.jp" V_ログパス = "src.txt" End If Dim client As System.Net.WebClient = New System.Net.WebClient() Dim url As String url = V_URL '指定したURLからhtmlのソースを取得する Dim myStream As System.IO.Stream = client.OpenRead(url) 'エンコードを指定する Dim sr As System.IO.StreamReader = New System.IO.StreamReader(myStream, System.Text.Encoding.GetEncoding("UTF-8")) Dim html_text As String = sr.ReadToEnd() sr.Close() myStream.Close() Debug.WriteLine(html_text) Dim sFilePath As String = V_ログパス '文字列をテキストファイルに全て書き込む Dim sw As New System.IO.StreamWriter(sFilePath, False, System.Text.Encoding.GetEncoding("shift_jis")) sw.Write(html_text) sw.Close() Environment.ExitCode = 2222 End Sub
End Module
========================================
あなたの回答
tips
プレビュー