资源简介
通过curl工具写的一个C语言版网页爬虫工具,主要在vim里方便使用!
代码片段和文件信息
#include
#include
#include
#include
typedef struct _img_url_lnk {
char *url;
struct _img_url_lnk *pre;
struct _img_url_lnk *next;
} img_url_lnk;
static const char g_filter[][32] = {
“html“
“htm“
};
static img_url_lnk *g_first_img_url = NULL;
static img_url_lnk *g_last_img_url = NULL;
static img_url_lnk* img_url_malloc(void)
{
img_url_lnk *ret = (img_url_lnk *)malloc(sizeof(img_url_lnk));
if (!ret)
return NULL;
ret->url = NULL;
ret->pre = NULL;
ret->next = NULL;
}
static void img_url_free(img_url_lnk *img)
{
if (!img)
return;
if (img->url)
free(img->url);
img->pre = NULL;
img->next = NULL;
}
static int img_url_push(img_url_lnk *img)
{
int ret = -1;
if (!img)
return ret;
if (!g_first_img_url) {
g_first_img_url = img;
g_last_img_url = g_first_img_url;
} else {
img->pre = g_last_img_url;
g_last_img_url->next = img;
g_last_img_url = img;
}
return 0;
}
static img_url_lnk* img_url_pop(void)
{
img_url_lnk *tmp = g_last_img_url;
if (!tmp)
return tmp;
if (g_last_img_url == g_first_img_url) {
g_first_img_url = g_last_img_url = NULL;
} else {
g_last_img_url = g_last_img_url->pre;
}
return tmp;
}
static int update_url_name(const char *url char *html_name)
{
const char *find = NULL;
if (!url)
return NULL;
int url_len = strlen(url);
int i = 0;
int j = 0;
if (!find)
find = url;
for (j = 0; j < url_len; j++) {
if (find[j] == ‘/‘) {
html_name[j] = ‘_‘;
continue;
}
html_name[j] = find[j];
}
printf(“[%s] name = %s\r\n“ __FUNCTION__ html_name);
return url_len;
}
static int gen_html_name(const char *url char *html_name)
{
const char *find = NULL;
if (!url)
return NULL;
int url_len = strlen(url);
int i = 0;
int j = 0;
for (i=url_len-1; i>=0; i-- ) {
if (url[i] == ‘/‘ || url[i] == ‘ ‘) {
find = url+i+1;
if ((url_len = strlen(find)) > 0) {
break;
}
} else if (url[i] == ‘%‘) {
find = url+i+3;
if ((url_len = strlen(find)) > 0) {
break;
}
} else if (url_len-i>16) {
find = url+i+1;
url_len = strlen(find);
break;
}
}
if (!find)
find = url;
for (j = 0; j < url_len; j++) {
if (find[j] == ‘/‘) {
html_name[j] = ‘_‘;
continue;
}
html_name[j] = find[j];
}
printf(“[%s] name = %s\r\n“ __FUNCTION__ html_name);
return url_len;
}
static int get_html_inner_urls_ex(char *buf)
{
int ret = -1;
int buf_len = 0;
int push_flag = 0;
char url[512] = { ‘\0‘ };
img_url_lnk *tmp = NULL;
int i = 0 j = 0;
if (!buf)
ret
- 上一篇:Vc++流媒体播放器源码
- 下一篇:GDI+SDK参考文档
相关资源
- 公园的导游图C语言版
- FDTD 算法以及C语言代码
- c语言课程设计 学生考勤系统报告
- 计算几何C语言描述
- 黑马传智C语言视频教程讲义文档201
- C语言程序设计基础(PDF格式)
- c语言网上考试系统毕业论文
- C语言经典算法最大流问题
- 数据结构(C语言版)第2版习题答案—
- 数据结构C语言版PPT 清华大学出版社
- 用c语言实现的MP3播放器
- 单片机c语言应用100例完整配套光盘
- 单片机C语言程序设计实训100例完整案
- openssl库C语言完整版
- C语言变量类型详解史上最全
- c语言实现http服务器和浏览器进行数据
- 链表栈的基本操作(C语言
- 基于单片机控制的LED点阵屏 含设计报
- EGE C语言 图书馆管理系统 实习作业
- c语言期末大作业图书管理系统
- 数字信号处理c语言程序集-各种数字信
- c语言实现连连看程序
- 学生成绩管理系统 c语言毕业设计论文
- 算法c语言实现英文版part1-4
- Windows下基于ModbusTcp的Server端开发C语言
-
simuli
nk仿真模型到C语言的转化 - C语言写的EGE图像库的推箱子源码.ra
- 从问题到程序-程序设计与C语言引论
- 常用算法程序集C语言描述第三版(
- c语言配套教材电子教案
评论
共有 条评论