アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。

私は最近、指定したウェブページのソースからリンク先のURLをリストとして書き出すツールを作ろうと思っているのですが、ウェブページのソースを所得する方法がわかりません。

某SNSで質問してみたところ、ソケット通信でhtmlデータを受信し、strstr()等で検索すれば良いとのことで調べては見たものの、通信関係は全くの無知なので理解し難い部分が多々ありました。
ですからここで質問させていただいたのですが、具体的にどのようなプログラムを書けばhtmlソースを受信することができるのでしょうか?

A 回答 (3件)

単純にソケット通信といっても、


環境によって多少違いがあります。
お使いの環境を教えてください。
    • good
    • 0

★追記。


・InternetReadFile() API関数を利用するには
 (1)『wininet.h』ヘッダをインクルードします。
 (2)『WinInet.Lib』ライブラリをインポートします。
 ※windows.h をインクルードしていれば wininet.h はインクルードしなくても良い。
・以上。

参考URL:http://msdn2.microsoft.com/En-US/library/aa38547 …
    • good
    • 0

★アドバイス


・InternetReadFile() API関数で HTML ソースを取得できます。
 この関数の使用例は次の過去質問を参考にして下さい。
 http://oshiete1.goo.ne.jp/qa2630445.html→『InternetReadFileで大きいファイルが読み取れない』
 ↑
 ここに載せています。→回答者 No.2、No.3 を参考に。
・なお、ファイルへ保存しなくてもメモリ内に HTML ソースを取得してメモリ上で URL アドレスを
 抽出するようにしても良いでしょう。ただし、巨大な HTML ソース(1MB以上)の場合は別の方法で
 分割取得します。このときは一時ファイルに保存して、そのファイルを処理するなどして下さい。

その他:
・前回の質問『URL抽出』→http://oshiete1.goo.ne.jp/qa3097203.html
 の補足アドバイスをします。
・HTML ソースの中には改行が全くないタイプが存在するため、前回紹介した簡単なサンプルでは
 一部、正常に URL を抽出できません。このタイプにも対応するには HTML ソースからタグを
 きちんと解読する必要があります。解読といっても文字列の処理ですので『<』~『>』文字の
 間がタグの記述だと判断して『A』→『HREF=』文字列を StrStrI() 関数で見つけます。
 その後に『=』文字に続く文字列が URL アドレスなのでダブルクォーテーションなどの文字まで
 を抽出します。
・なお、StrStrI() 関数は C言語の strstr() と似た関数ですが、大文字と小文字を区別無く検索
 できる便利な関数です。この API 関数を利用するには
 (1)#include <shlwapi.h> をインクルードする
 (2)shlwapi.lib をインポートする
 ↑
 これで使用できます。
 StrStrI() 関数については→http://nienie.com/~masapico/api_StrStrI.html を参考に。
・まずは HTML ソースを一時ファイルに保存して、そのファイルから URL アドレスを抽出してみて下さい。
・以上。

参考URL:http://oshiete1.goo.ne.jp/qa2630445.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!