インターネットから情報を取り出す方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
あかり

インターネットから情報を取り出す方法

#1

投稿記事 by あかり » 11年前

いつもお世話になっています。
インターネットから情報だけを取り出す方法なんですが、HTMLのコマンドなどを抜いて書いてある情報だけを取り出すには、
コマンドなどのキーワードを削除するプログラムを組まないとダメでしょうか?
よろしくお願いします。

コード:

#include <stdio.h>
#include <winsock2.h>
#include <wininet.h>
#pragma comment(lib, "wininet.lib")
#include <iostream>
#include <fstream>

#define MAX 10000

void GetHttpFile();

int main(int argc, char *argv[]){
	GetHttpFile();

	return 0;
}

void GetHttpFile()
{
	HINTERNET hInternet;
	HINTERNET hFile;
	char Buf[MAX];
	DWORD ReadSize;
	BOOL bResult;
	std::ofstream ofs("test.txt");

	/* WININET初期化 */
	hInternet = InternetOpen(
		"WININET Sample Program",
		INTERNET_OPEN_TYPE_PRECONFIG,
		NULL,
		NULL,
		0);

	/* URLのオープン */
	hFile = InternetOpenUrl(
		hInternet,
		"http://news.yahoo.co.jp/",
		NULL,
		0,
		INTERNET_FLAG_RELOAD,
		0);

	/* オープンしたURLからデータを(1000バイトずつ)読み込む */
	for (;;) {
		ReadSize = MAX-1;

		bResult = InternetReadFile(
			hFile,
			Buf,
			MAX-1,
			&ReadSize);

		/* 全て読み込んだらループを抜ける */
		if (bResult && (ReadSize == 0)) break;

		Buf[ReadSize] = '\0';
		std::cout << Buf;
		ofs << Buf;
	}

	/* 後処理 */
	InternetCloseHandle(hFile);
	InternetCloseHandle(hInternet);
}

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: インターネットから情報を取り出す方法

#2

投稿記事 by みけCAT » 11年前

sedなどを使えば出来ないことはないかもしれませんが、
(少なくとも自分は)Perlでプログラムを書くのが楽だと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: インターネットから情報を取り出す方法

#3

投稿記事 by みけCAT » 11年前

あかり さんが書きました:コマンドなどのキーワードを削除するプログラムを組まないとダメでしょうか?
逆に、取り出したい情報だけを取り出すプログラムを組む方がいいと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: インターネットから情報を取り出す方法

#4

投稿記事 by softya(ソフト屋) » 11年前

httpのアクセスが楽で正規表現が使える言語なら比較的楽に出来る可能性はあります。
ただ、世間のサイトはHTML文法に忠実とは言えないので、ちゃんと取り出すには結構きめ細かな処理が必要です。
なので、HTMLレンダリングエンジン経由でテキストだけ取り出す仕組みを使ったほうが最終的には楽でしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

あかり

Re: インターネットから情報を取り出す方法

#5

投稿記事 by あかり » 11年前

返信ありがとうございます。
C言語よりほかの言語を使う方がいいんですね。
ほかの言語をいろいろ調べてみます、ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る