TSE-定义Page类

有了URL,搜集系统就可以按照URL标识抓取其所对应的网页,网页信息保存在Page类中。
下面是Page类的定义,对应文件Page.h。
class CPage
{
public:
string m_sUrl;
// 网页头信息
string m_sHeader;
int m_nLenHeader;
int m_nStatusCode;
int m_nContentLength;
string m_sLocation;
bool m_bConnectionState; // 如果连接关闭,是false,否则为true
string m_sContentEncoding;
string m_sContentType;
string m_sCharset; " 36 "
string m_sTransferEncoding;
// 网页体信息
string m_sContent;
int m_nLenContent;
string m_sContentNoTags;
// link, in a lash-up state
string m_sContentLinkInfo;
// 为搜索引擎准备的链接,in a lash-up state
string m_sLinkInfo4SE;
int m_nLenLinkInfo4SE;
// 为历史存档准备的链接, in a lash-up state
string m_sLinkInfo4History;
int m_nLenLinkInfo4History;
//为搜索准备的链接,in a good state
RefLink4SE m_RefLink4SE[MAX_URL_REFERENCES];
int m_nRefLink4SENum;
//为历史存档准备的链接, in a good state
RefLink4History m_RefLink4History[MAX_URL_REFERENCES/2];
int m_nRefLink4HistoryNum;
map<string,string>m_mapLink4SE;
vector<string >m_vecLink4History;
enum page_type m_eType; // 网页类型
public:
CPage();
CPage::CPage(string strUrl, string strLocation, char* header, char*body, int nLenBody);
~CPage(); " 37 "
void ParseHeaderInfo(string header); // 解析网页头信息
bool ParseHyperLinks(); // 从网页体中解析链接信息
bool NormalizeUrl(string& strUrl);
bool IsFilterLink(string plink);
private:
// 解析网页头信息
void GetStatusCode(string header);
void GetContentLength(string header);
void GetConnectionState(string header);
void GetLocation(string header);
void GetCharset(string header);
void GetContentEncoding(string header);
void GetContentType(string header);
void GetTransferEncoding(string header);
// 从网页体中解析链接信息
bool GetContentLinkInfo();
bool GetLinkInfo4SE();
bool GetLinkInfo4History();
bool FindRefLink4SE();
bool FindRefLink4History();
};
Page类的具体实现请参看Page.cpp文件。一个网页是以URL作为标识的,所以Page类的第一个成员变量是m_sUrl。Page类主要完成两个任务:解析网页头信息和提取链接信息。
解析网页头信息包括获得状态码m_nStatusCode,网页体长度m_nContentLength(内容字节数),转向信息m_sLocation,连接状态(如果没有关闭,下次请求同一个网站可以重新利用已经建立好的socket,节约资源),网页体编码m_sContentEncoding(如果是gzip编码,要解压缩,然后提取链接信息。现在门户网站的首页有增大趋势,为了加快传输速度,通常采用gzip编码压缩后传输),网页类型m_sContentType,网页体字符集m_sCharset,和传输编码方式m_sTransferEncoding。
提取链接信息,是从获得的网页体中,根据HTML的规定,提取出链接信息
和相应的链接描述信息,形成网页结构库,扩充URL库。在TSE中对于网页内容的链接提取区分了为搜索引擎提取和为历史网页存档提取两种。因为对于通常意义下的搜索引擎而言,图片链接,网页格式链接是没有用处的,如果不区分开,会增加程序运行的负担,增加存储空间。而且区分开后,可以单独保存下来,便于以后单独搜集这些信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值