资源简介
一个基于C++的网络爬虫程序,实现了最基本的功能,适合入门级的源码分析
代码片段和文件信息
/* HTMLParser.cpp
* Author SL.
* Date: 2005/03/01.
* Abstract: HTML分析器
* */
#include “StdAfx.h“
#include “HTMLParser.h“
#define __ENABLE_POCO_LIB__
#ifdef __ENABLE_POCO_LIB__
#include
#include
#endif
#define A_TEXT_LEN 10
static StateDescr automaton[MaxState];
void convertToLowerCase (char *string)
{
int i;
if (!string)
return;
for (i = 0; string[i] != EOS; i++)
{
string[i] = tolower (string[i]);
}
}
int strncasecmp( char *string1 char *string2)
{
convertToLowerCase(string1);
convertToLowerCase(string2);
return strcmp(string1string2);
}
char isGBFullChar(char* str)
{
unsigned int iChar;
iChar = GBToInt(str[0] str[1]);
if (Between(iChar GB_FULL_START GB_FULL_END))
return (char)(iChar - GB_FULL_base);
switch (iChar)
{
case 0xA1A1:
return ‘ ‘;
default:
return 0;
}
}
void dealspecialchar(char* srcchar ch)
{
if(src==NULL)
return;
if(strlen(src)==0)
return;
char *data*dest;
data=dest=src;
while (*dest )
{
if (*dest ==ch)
{
dest += 1;
}
else
{
*data++ = *dest++;
}
}
*data = ‘\0‘;
}
void changeAngle(char* src)
{
char ch*data*dest;
data=dest=src;
while (*dest)
{
if ((ch = isGBFullChar(dest))!=0)
{
dest += 2;
*data++ = ch;
}
else if ((*dest & 0x80) == 0)
{
*data++ = *dest++;
}
else
{
*data++ = *dest++;
if (*dest)
{
*data++ = *dest++;
}
}
}
*data = ‘\0‘;
}
string compressSpace(char *str)
{
char *p;
int ijlen;
string temp;
if(str==NULL)
{
temp=““;
return temp;
}
if(strcmp(str“\r\n“)==0 ||strcmp(str“\n\r“)==0 || strcmp(str“\1\1“)==0)
{
temp=““;
return temp;
}
len=strlen(str);
p=str;
for(i=0;i {
if(str[i]==‘ ‘ || str[i]==‘\t‘ || str[i]==‘\r‘ || str[i]==‘\n‘ || str[i]==‘\1‘)
{
;
}
else
{
p=&str[i];
break;
}
}
for(j=len-1;j>=0;j--)
{
if(str[j]==‘ ‘ || str[j]==‘\r‘ || str[j]==‘\n‘ || str[j]==‘\t‘ || str[j]==‘\1‘)
{
str[j]=‘\0‘;
}
else
{
break;
}
}
if(*p==‘\0‘)
temp=““;
else
temp=p;
return temp;
}
static ElemMapping XHTMLElemMappingTable[] ={
// This table MUST be in alphabetical order and in lower case
{“a“ SPACE HTML_EL_Anchor L_BasicValue true}
{“abbr“ SPACE HTML_EL_ABBR L_BasicValue true}
{“acronym“ SPACE HTML_EL_ACRONYM L_BasicValue true}
{“address“ SPACE HTML_EL_Address L_BasicValue false}
{“applet“ SPACE HTML_EL_applet L_TransitionalValue true}
{“area“ ‘E‘ HTML_EL_AREA L_StrictValue false}
{“b“ SPACE HTML_EL_Bold_text L_StrictValue true}
{“base“ ‘E‘ HTML_EL_base L_BasicValue false}
{“basefont“ ‘E‘ HTML_EL_baseFont L_TransitionalValue false}
{“bdo“ SPACE HTML_EL_BDO L_StrictValue true}
{“big“ SPACE HTML_EL_Big_text L_StrictValue true}
{“blockquote“ SPACE HTML_EL_Block_Quote L_BasicValue false}
{“body“ SPACE HTML_EL_BODY L_BasicValue fa
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 0 2008-05-29 22:50 spider_new\spider_new\spider\error.txt
文件 59753 2008-05-16 13:47 spider_new\spider_new\spider\HTMLParser.cpp
文件 15354 2008-04-25 16:57 spider_new\spider_new\spider\HTMLParser.h
文件 9088 2008-05-16 13:47 spider_new\spider_new\spider\HTMLTree.cpp
文件 2838 2008-05-16 13:47 spider_new\spider_new\spider\HTMLTree.h
文件 1965 2007-09-14 14:10 spider_new\spider_new\spider\hz.h
文件 0 2008-05-19 14:46 spider_new\spider_new\spider\MVC116.tmp
文件 0 2008-05-16 15:28 spider_new\spider_new\spider\MVC15E.tmp
文件 0 2008-05-18 16:11 spider_new\spider_new\spider\MVCD0.tmp
文件 394 2008-05-16 19:58 spider_new\spider_new\spider\New Text Document.txt
文件 3579 2008-05-16 12:51 spider_new\spider_new\spider\ReadMe.txt
文件 1078 2008-05-16 12:51 spider_new\spider_new\spider\res\spider.ico
文件 398 2008-05-16 12:51 spider_new\spider_new\spider\res\spider.rc2
文件 914 2008-05-19 14:36 spider_new\spider_new\spider\resource.h
文件 36168 2008-05-29 22:48 spider_new\spider_new\spider\spider.aps
文件 1984 2008-05-30 23:15 spider_new\spider_new\spider\spider.clw
文件 2063 2008-05-16 12:51 spider_new\spider_new\spider\spider.cpp
文件 4591 2008-05-16 15:18 spider_new\spider_new\spider\spider.dsp
文件 518 2008-05-16 12:51 spider_new\spider_new\spider\spider.dsw
文件 1324 2008-05-16 12:51 spider_new\spider_new\spider\spider.h
文件 197632 2008-05-30 23:15 spider_new\spider_new\spider\spider.ncb
文件 57856 2008-05-30 23:15 spider_new\spider_new\spider\spider.opt
文件 2121 2008-05-30 23:15 spider_new\spider_new\spider\spider.plg
文件 5525 2008-05-29 22:48 spider_new\spider_new\spider\spider.rc
文件 12409 2008-05-30 23:13 spider_new\spider_new\spider\spiderDlg.cpp
文件 2073 2008-05-19 15:02 spider_new\spider_new\spider\spiderDlg.h
文件 208 2008-05-16 12:51 spider_new\spider_new\spider\StdAfx.cpp
文件 1168 2008-05-19 14:45 spider_new\spider_new\spider\StdAfx.h
文件 1671 2008-05-18 18:05 spider_new\spider_new\spider\Url.cpp
文件 880 2008-05-18 14:43 spider_new\spider_new\spider\Url.h
............此处省略9个文件信息
相关资源
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
- c++ 虚拟摄像头
- hook,捕获所有案件,查找所有窗口,
- C语言课设计算器
- c++ 简易贪吃蛇源码
- 高精度加法(c++代码)
- C++调用百度地图案例
- 北京化工大学计算方法(C/C++)讲义
- 基于VC++的SolidWorks二次开发SolidWorks
- c++ 模拟鼠标按键
- OFD编辑器
- Beginning C++17 From Novice to Professional
- C++ STL实现
- opencv手部轮廓识别以及轨迹识别
- 百度C++编码规范
- C++ sql2008 WebServer通讯.docx
- c++ 定时关机程序源码
- 基于VSCode和CMake实现C++开发
- c++语法查询工具
- c++ 账务系统源码
- GBT 28169-2011 嵌入式软件 C语言编码规范
- c++ 猜拳小游戏
- XUnZip Zip解压缩.rar
评论
共有 条评论