指定したURLのWebページからアンカータグを収集するプログラムを作成したいです。
JavaやPerlならば作成できるのですが、Visual C++で開発しなければならず、この経験がないために本当に困っています。
作りたいものはURLを与えると、そのURLのWebページのHTMLを見て、アンカータグ<a href="...">~</a>を収集して取り出すコンソールプログラムです。
もしソースがあればソースをいただきたいのですが、とにかくいろんな情報をいただきたいです。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
実は昔、作ったことがありますね。
ソースは今、手元にないですが・・・
Socketを作って、port80(HTTPのポート)で接続、
GETだったかなんだかを送る(send)と、もってこれ(recv)ます。
あとはそれを解析。
まぁ、たいして難しくないので、web見ながらやれば出来るでしょう。
参考URL:http://home.a03.itscom.net/tsuzu/programing/tips …
この回答への補足
回答と参考Webページをありがとうございます。
一応、URLを指定してHTMLを取ってくるプログラムは見つけたのですが、見つけるのにも結構苦労しました。『猫でもわかるネットワークプログラミング』というのに書いてありました。
アンカータグの解析も結構難しいと感じているですが・・・。Webを調べてIHTMLDocument2とか、innerHTMLなるものなどを見つけたのでこれらを使いたいです・・・。
No.3
- 回答日時:
WinInetはここで初めて知ったのですが、
MSのページに両者の比較がありました。
WinCEのケースですが、Windows全般に言えることだと思います。
要は、WinInetがWinSockを使っているということで、
より簡易になっているが、機能が限定されているようですね。
お求めのPGMでは、WinInetの方が良いのでは?
ただし、WinInetはIE3.0環境が必要のようです。
WinSockは、OSにより使用できるバージョン、DLLが
違います。(#1参照)
要件定義する際に、どの環境をターゲットとするかに
より、決定すれば良いのではないですか?
参考URL:http://www.microsoft.com/japan/msdn/library/defa …
再びの回答、ありがとうございます。
参考URLから知識を得ることができました。結局、現状では環境はそれほど影響しないことから、容易なWinInetを選択しました。
No.2
- 回答日時:
がると申します。
んっと…HTMLはとって来れそうなので、その後の「文字列(HTML)からアンカーエレメントを探し出す」方法を。
Visual C++で、との事ですが。もし.netが使える環境であれば、正規表現クラスが存在していたかと思います。
ですので、正規表現で探し出せばOKかと。
もし正規表現ライブラリが使えない状況であれば…状態遷移プログラムが書ければ比較的簡単なのですが。
googleあたりで、状態遷移とかオートマトンとかって検索すると色々出てくるかと思います。
この回答への補足
回答ありがとうございます。
いろいろと調べてboostなるものを発見して、このboostの正規表現を使うことにしました。
まだHTMLを取ってくるプログラムと組み合わせていないのですが、正規表現プログラムのほうではアンカーエレメントが取れました。
ところで、HTMLを取ってくる方法を2つ知りました。WinsockとWinInetなんですが、どちらがいいですか?
知っている方がいらっしゃいましたら回答をよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- JavaScript ブックマークレットについて 2 2022/10/09 11:48
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- WordPress(ワードプレス) ワードプレスのパーマリンク設定について 1 2023/02/11 19:08
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
- ソフトウェア データベースのウェブでの自作 2 2023/08/01 10:06
- ホームページ作成・プログラミング ログインしないとみることができないWebページの作成方法 3 2023/07/29 13:33
- その他(プログラミング・Web制作) pythonのWebスクレイピングでfind_allだとurlがNoneに 4 2022/04/17 18:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba listviewにおけるtextのAli...
-
指定したフォルダーを最前面表...
-
c言語のサイコロを100回振って...
-
COBOLのS9タイプからXタイプへ...
-
バックグラウンドで動作させる。
-
VBA
-
シリアル通信に関するプログラ...
-
DirectShowでのカメラ画像
-
三次元のグラフを書きたいので...
-
デジタルフィルタ
-
C言語でのソケット通信のclose
-
processingで雪が積もるような...
-
プロダクションコードとは?
-
オブジェクト指向によるポケモ...
-
signalハンドラに引数を渡したい
-
R言語の逆行列計算について
-
四択のクイズを作っているので...
-
VBAプログラミング
-
XPathの関数「text()="value"」...
-
gccでスタックオーバーフローの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Webプログラムってネイティブア...
-
vba listviewにおけるtextのAli...
-
初級者の質問――time_tについて
-
VBA
-
COBOLのS9タイプからXタイプへ...
-
指定したフォルダーを最前面表...
-
マイコンからプログラムを読み...
-
2値化した画像の黒い部分のピク...
-
プロダクションコードとは?
-
Arduino nano(アルドゥイーノ ...
-
URLの最初の「h」を略す
-
VBコンソールアプリ(.NET Frame...
-
XPathの関数「text()="value"」...
-
世界一美しいソースコード
-
Excel VBA で、データベースフ...
-
三次元のグラフを書きたいので...
-
Visual Studio .NET C# でDLLを...
-
SH2を使いたいです
-
壁紙の変更
-
gccでスタックオーバーフローの...
おすすめ情報