質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
BASIC

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

UWSC

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

VB.NET

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

Q&A

0回答

2100閲覧

Webサイトの記事(本文)のみを取得したい。

KudoTomoyasu

総合スコア6

BASIC

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

UWSC

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

VB.NET

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

0グッド

1クリップ

投稿2018/08/02 17:46

編集2022/01/12 10:55

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
========================================

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2018/08/02 23:06

どこかの課題でしょうか(類似した質問が度々なされてます)コードを提示するには、編集ボタン、<code>ボタンで、'''の枠の中にコピーしてください
KudoTomoyasu

2018/08/04 06:10

次回からそのようにします。
KudoTomoyasu

2018/08/04 06:11

学校の課題などではなくてプロジェクトチームで実現したい内容です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問