c++使用libcurl
程序员文章站
2023-03-20 10:45:30
最近一直在写个抓取天猫数据的小工具,用到libcurl库
#include
#include "curl/curl.h"
using namespa...
最近一直在写个抓取天猫数据的小工具,用到libcurl库
#include #include "curl/curl.h" using namespace std; void tcurl(); size_t myWrite( void *ptr, size_t size, size_t nmemb, void *stream); int main(int argc, char const *argv[]) { tcurl(); return 0; } void tcurl(){ cout << "start" << endl; char *version = curl_version(); CURL *curl; curl = curl_easy_init(); string url="",res=""; url = "http://book.weibo.com"; cout << version; //抓取http数据 curl_easy_setopt(curl,CURLOPT_URL,url.c_str()); curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&res); curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION, myWrite); curl_easy_setopt(curl, CURLOPT_HEADER, 0); //超时,不接受其他信号 curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1); curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 3); curl_easy_setopt(curl, CURLOPT_TIMEOUT, 3); //执行 curl_easy_perform(curl); //关闭 curl_easy_cleanup(curl); //cout << version << endl; cout << res << endl; } //数据的获取 size_t myWrite( void *ptr, size_t size, size_t nmemb, void *stream){ string *str = dynamic_cast((string*)stream); if( 0 == size || NULL == ptr){ return -1; } char* pData = (char*)ptr; str->append(pData,nmemb*size); return nmemb*size; }
g++ tcurl.cpp -lcurl 运行即可
参考
libcurl的使用
http://blog.csdn.net/huyiyang2010/article/details/7664201
http://blog.chinaunix.net/uid-20692625-id-3203258.html
libcurl的函数说明
http://blog.csdn.net/w13770269691/article/details/8847800
推荐阅读
-
基于静态Singleton模式的使用介绍
-
PHP使用stream_context_create()模拟POST/GET请求的方法
-
C# 使用相同权限调用 cmd 传入命令的方法
-
ISO7 二维码详细介绍及使用方法
-
MySQL使用select语句查询指定表中指定列(字段)的数据
-
详解使用ISO镜像搭建私有yum源
-
mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)
-
PHP使用http_build_query()构造URL字符串的方法
-
Centos7下使用yum安装mysql数据库的详细教程(增强版)
-
iOS程序开发之使用PlaceholderImageView实现优雅的图片加载效果