たった 20 行のコードでひたすらアイドル水着画像をあつめる(C++ + cpp-netlib だよ)
最新版だとヘッダーオンリーで使えないっぽいのでライブラリをビルドしてリンクする必要があります。
[ソース]
#include <boost/network.hpp> #include <boost/xpressive/xpressive.hpp> #include <iostream> int main(){ namespace http = boost::network::http; std::string body = http::body(http::client().get(http::client::request("http://matome.naver.jp//odai/2135350364969742801"))); auto chars = +(~boost::xpressive::as_xpr('>')); boost::xpressive::sregex token = "<img src=" >> chars >> "class=\"MTMItemThumb\"" >> chars >> "/>"; std::for_each( boost::xpressive::sregex_iterator(std::begin(body), std::end(body), token), boost::xpressive::sregex_iterator(), [](boost::xpressive::smatch const& what){ std::cout << what[0] << std::endl; } ); return 0; }
パース周りはそのままですが、通信周りがだいぶスッキリ。
この手の処理が C++ で楽に書けるようになるといいですね。