- ベストアンサー
URL抽出
指定したURLのソースから<A HREF="~">タグの"~"部分を抜き出してリスト化するようなURL抽出ツールを作りたいのですが、どのようにプログラムを書けばよいのかわからずに困っています。 わかるかた、回答のほどをよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
★アドバイス ・一番簡単な方法は『http://』文字列を strstr() 関数で検索します。 その後、ダブルクォーテーション文字までを抽出します。 シングルクォーテーション文字の場合もあるのでこれにも対応するように。 ・下に簡単なサンプルを載せます。 サンプル: char buff[ 1024 ]; char *find; // ファイルから読み込む while ( fgets(buff,sizeof(buff),fp) != NULL ){ if ( (find = strstr(buff,"http://")) != NULL ){ for ( ; *find != '\0' ; find++ ){ if ( (*find == '\'') || (*find == '\"') ){ break; } putchar( *find ); } putchar( '\n' ); } }
その他の回答 (1)
- jacta
- ベストアンサー率26% (845/3158)
普通に考えると、正規表現を使うことになるでしょうね。 私の場合、最近では純粋な正規表現ではなく、Boost.Spiritを使っていますが、この辺りは好みや慣れ親しんだものもあるので、どれがよいとは一概には言えません。 なお、"http://" を探索するだけでは不十分かと思います。"https://" は無視してよいのかどうかわかりませんし、CGIやPHPのパラメータにその文字列が含まれていた場合、本文中に http:// の記載があった場合、IMGタグなど、Aタグ以外に現れた場合などは、期待した結果にならないからです。