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中对于网页内容的链接提取区分了为搜索引擎提取和为历史网页存档提取两种。因为对于通常意义下的搜索引擎而言,图片链接,网页格式链接是没有用处的,如果不区分开,会增加程序运行的负担,增加存储空间。而且区分开后,可以单独保存下来,便于以后单独搜集这些信息。

你可能感兴趣的:(搜索引擎,socket,UP)