资源简介
通过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语言编程常见问题解答.pdf
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
川公网安备 51152502000135号
评论
共有 条评论