libcurl保存网页内容以及图片
2010-12-12 14:16
309 查看
最近一直在学习linux下使用libcurl,网络上很多朋友有比较详细的使用方法,下面是本人经过测试的功能函数,主要是能高保存网页源码,相当于我们点击查看->源码 所看到的内容。首先介绍一下libcurl的使用吧。
首先必须要安装libcurl开发环境(有时候吧这些环境手工引用也行)。获取和安装 libcurl 非常简单,取决于您所运行的 Linux 发行版。如果运行的是 Ubuntu,您可以使用 apt-get轻松安装这些包。以下行演示了如何为 libcurl 安装 libcurl:
$ sudo apt-get install libcurl3
完成之后在安装curl:
sudo apt-get install curl
安装curl开发环境:
sudo apt-get install libcurl4-gnutls-dev
下面开始介绍一下使用。
#include <curl/curl.h> //使用curl获取internet的curl源码内容 安装开发包sudo apt-get install libcurl4-gnutls-dev
#include <curl/types.h>
#include <curl/easy.h>
#include <memory>
#include <string>
#include <sys/sysinfo.h>
#include <sys/statfs.h>
#include <sys/statvfs.h>
#include <sys/vfs.h>
#include <fcntl.h>
#include <utmp.h>
#include <mntent.h>
//回调函数,这个函数是为了符合CURLOPT_WRITEFUNCTION, 而构造的
size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
{
int written = fwrite(ptr, size, nmemb, (FILE *)fp);
return written;
}
int main(int argc, char *argv[])
{
CURL *curl;
curl_global_init(CURL_GLOBAL_ALL);
curl=curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, argv[1]); //如argv[1] = "www.ihep.ac.cn"
char cFileName[128]={0};
sprintf(cFileName,"%s.txt",argv[1]);
if((fp=fopen(cFileName,"w"))==NULL) {
curl_easy_cleanup(curl);
return -1;
}
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); //CURLOPT_WRITEFUNCTION 将后继动作交给write_data函数处理
curl_easy_perform(curl);
curl_easy_cleanup(curl);
return 1;
}
以上简单的源码即可实现保存网页的源码内容,现在还有个问题,如何将网页中出现的图片保存下来呢?有的朋友介绍个用网页爬虫爬取,这是比较复制的方案,如何用libcurl来实现待继续测试。
首先必须要安装libcurl开发环境(有时候吧这些环境手工引用也行)。获取和安装 libcurl 非常简单,取决于您所运行的 Linux 发行版。如果运行的是 Ubuntu,您可以使用 apt-get轻松安装这些包。以下行演示了如何为 libcurl 安装 libcurl:
$ sudo apt-get install libcurl3
完成之后在安装curl:
sudo apt-get install curl
安装curl开发环境:
sudo apt-get install libcurl4-gnutls-dev
下面开始介绍一下使用。
#include <curl/curl.h> //使用curl获取internet的curl源码内容 安装开发包sudo apt-get install libcurl4-gnutls-dev
#include <curl/types.h>
#include <curl/easy.h>
#include <memory>
#include <string>
#include <sys/sysinfo.h>
#include <sys/statfs.h>
#include <sys/statvfs.h>
#include <sys/vfs.h>
#include <fcntl.h>
#include <utmp.h>
#include <mntent.h>
//回调函数,这个函数是为了符合CURLOPT_WRITEFUNCTION, 而构造的
size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
{
int written = fwrite(ptr, size, nmemb, (FILE *)fp);
return written;
}
int main(int argc, char *argv[])
{
CURL *curl;
curl_global_init(CURL_GLOBAL_ALL);
curl=curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, argv[1]); //如argv[1] = "www.ihep.ac.cn"
char cFileName[128]={0};
sprintf(cFileName,"%s.txt",argv[1]);
if((fp=fopen(cFileName,"w"))==NULL) {
curl_easy_cleanup(curl);
return -1;
}
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); //CURLOPT_WRITEFUNCTION 将后继动作交给write_data函数处理
curl_easy_perform(curl);
curl_easy_cleanup(curl);
return 1;
}
以上简单的源码即可实现保存网页的源码内容,现在还有个问题,如何将网页中出现的图片保存下来呢?有的朋友介绍个用网页爬虫爬取,这是比较复制的方案,如何用libcurl来实现待继续测试。
相关文章推荐
- JSP(SSH)表单上传图片以及文本内容到后台保存,上传带图片的文章新闻等
- C#将网页内容转换成图片保存到本地( webbrowser 可应用于B/S结构中)
- C#将网页内容转换成图片保存到本地( webbrowser 可应用于B/S结构中)
- webbrowser如何将网页内容保存为字符串以及根据字符串显示成网页
- tableview 加载图片时内容混乱,亲测好用,以及 图片保存到本地相册
- 将网页内容保存为字符串以及根据字符串显示成网页
- Python保存一个网页的全部内容(包含链接内的图片等等)
- 利用htmpParser获取网页内容以及网页上的图片地址
- 用Canvas实现截取网页内容保存为图片
- 将文本文件的内容或者文字保存成图片的方法分享
- web中,如何读取Word内容(包含表格,但不包含图片)并且显示在页面中或保存进数据库中
- Javascript保存网页为图片借助于html2canvas库实现
- 快速保存网页中所有图片的方法
- shareSDK分享平台分享内容出去显示“来自XXX”的问题及其如何修改分享菜单的背景图片以及调用无UI方法自定义UI分享
- listView显示保存在服务器的图片,不是网页上的图片
- python抓取网页中图片并保存到本地
- 保存网页图片的八种方法
- 【开源】天猫店整店商品图片采集工具:屠刀(包含题图、颜色图、内容图,适用于服装类,按货号保存商品图片)
- 实现app上对csdn的文章查看,以及文章中图片的保存 (制作csdn app 完结篇)
- 使用jdbcTemplate 保存图片 至数据库 以及 从数据库读取 保存到本地