Linux下C语言用socket获取网页源码
来源:互联网 发布:淘宝qq群推广抽成 编辑:程序博客网 时间:2024/05/21 07:08
- string
GetHtmlByWget(string url) - {
-
//获取待下载网页文件名 -
string fileName = url.substr((int)url.find_last_of("/") + 1); -
if(fileName != "") -
{ -
string strCom = "wget -q ;" //wget命令,-q表示不显示下载信息 -
strCom.append(url); -
system(strCom.c_str()); //执行wget -
-
ifstream fin(fileName.c_str()); -
if(!fin) -
{ -
return ""; -
} -
string strHtml = ""; -
char chTemp[1024] = ""; -
//读取网页文件到内存中 -
while(fin.getline(chTemp , 1024)) -
{ -
strHtml.append(string(chTemp)); -
strcpy(chTemp , ""); -
} -
fin.close(); -
strCom = "rm -f ;" //删除文件命令,-f表示直接删除不做任何提示 -
strCom.append(fileName); -
system(strCom.c_str()); //删除刚才下载下来的文件 -
return strHtml; //返回网页源码 -
} -
else -
{ -
return ""; -
} - }
第二个是用的socket的来获取源码
C++代码
//通过GET获取网页源码
string GetHtmlByGet(string url)
{
}
- 使用libcurl
- Java代码
- #include
<stdio.h> -
#include <string.h> -
#include <curl/curl.h> -
-
#define MAX_BUF 65536 -
-
char wr_buf[MAX_BUF+1]; -
int wr_index; -
-
-
size_t write_data( void *buffer, size_t size, size_t nmemb, void *userp ) -
{ -
int segsize = size * nmemb; -
-
-
if ( wr_index + segsize > MAX_BUF ) { -
*(int *)userp = 1; -
return 0; -
} -
-
-
memcpy( (void *)&wr_buf[wr_index], buffer, (size_t)segsize ); -
-
-
wr_index += segsize; -
-
-
wr_buf[wr_index] = 0; -
-
-
return segsize; -
} -
-
-
-
int main( void ) -
{ -
CURL *curl; -
CURLcode ret; -
int wr_error; -
-
wr_error = 0; -
wr_index = 0; -
-
-
curl = curl_easy_init(); -
if (!curl) { -
printf("couldn't init );curl\n" -
return 0; -
} -
-
-
curl_easy_setopt( curl, CURLOPT_URL, "www.exampledomain.com" ); -
-
-
curl_easy_setopt( curl, CURLOPT_WRITEDATA, (void *)&wr_error ); -
curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, write_data ); -
-
-
ret = curl_easy_perform( curl ); -
-
printf( "ret = ,%d (write_error = %d)\n" ret, wr_error ); -
-
-
if ( ret == 0 ) printf( "%s\n", wr_buf ); -
-
curl_easy_cleanup( curl ); -
-
return 0; -
}
- #include
- Linux下C语言用socket获取网页源码…
- Linux下C语言用socket获取网页源码
- C语言使用socket获取网页内容
- linux下C语言如何获取网页源代码
- LINUX下c语言SOCKET客户端示范
- Linux下C语言socket编程
- Linux下C语言socket编程
- Linux下C语言Socket实现文件传输
- Linux下C语言socket网络编程
- Linux下C语言Socket编程
- linux下C语言 socket tcp编程
- linux获取网页源码
- linux下用openssl获取数据文件摘要(C源码)
- Linux下c语言实现ffmp源码
- linux c获取网页源码(经测试可用)
- Linux下用C语言设置和获取系统时间
- Linux下用C语言设置和获取系统时间
- linux下用C语言获取本地时间
- [Leetcode] 50, 55, 45
- Linux命令行界面修改分辨率
- 今天是写博客的第一天
- 激光SLAM Vs 视觉SLAM
- POJ 2155 二维树状数组+差分
- Linux下C语言用socket获取网页源码
- 快速排序 python版
- 【PAT】【Advanced Level】1087. All Roads Lead to Rome (30)
- 08:判断一个数能否同时被3和5整除
- Android7.0 PowerManagerService(1) 启动过程
- (源码分析)Android系统时间-自动获取
- Eigen介绍及简单使用
- LeetCode 219. Contains Duplicate II
- ubuntu16.04QT5.8安装和arm环境下的qte-5.8.0安装配置