質問編集履歴

1 タイトルがわかりにくいのを直しました

KudoTomoyasu

KudoTomoyasu score 6

2018/08/03 02:47  投稿

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
========================================
  • VB.NET

    1736 questions

    Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

  • BASIC

    53 questions

    BASICとは、手続き型言語の一つ。英語に準した簡易な記述になっており、基本的には初心者向けのプログラミング言語です。1970年代以降のコンピュータでよく使用された言語で、様々な拡張を加え現在も利用されています。

  • UWSC

    87 questions

    UWSCは、Windowsの作業を自動化するソフトです。マウスとキー入力を記録して代行することが可能。スクリプト形式により自由に編集することもできます。スケジュール機能を持ち、Excelとの連携も可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る