資源簡介
完全基于C語言實現的網絡爬蟲(也就是所謂的網絡蜘蛛、搜索引擎),內附詳細的設計文檔和詳細的講解,想學的同志不容錯過吖
代碼片段和文件信息
#include?“Csocket.h“
Csocket::Csocket(void)
{
}
Csocket::~Csocket(void)
{
}
SOCKET?Csocket::Create(int?af?int?type?int?protocol)
{
WORD?wVersionRequested;
WSADATA?wsaData;
int?err;
wVersionRequested?=?MAKEWORD(?2?2?);
err?=?WSAStartup(?wVersionRequested?&wsaData?);
if?(?err?!=?0?)?
{
cout?<“Error:?“?< return?NULL;
}??????????????????????????????????????
if?(?LOBYTE(?wsaData.wVersion?)?!=?2?||
????????HIBYTE(?wsaData.wVersion?)?!=?2?)?
{???
cout?<“Error:?“?< WSACleanup(?);
return?NULL;?
}
return?socket(af?type?protocol);
}
int?Csocket::CConnect(SOCKET?client?string?dest)
{
SOCKADDR_IN?addrSrv;
char?a[50]?=?“?“;
for(int?i=0;?i a[i]?=?dest[i];
LPHOSTENT?lphost;
int?port?;
port?=?8080;
lphost?=?gethostbyname(a);
addrSrv.sin_addr.S_un.S_addr?=?((LPIN_ADDR)lphost->h_addr)->S_un.S_addr;
addrSrv.sin_port?=?htons(port);
addrSrv.sin_family?=?AF_INET;
int?result;
result?=?connect(client?(SOCKADDR*)&addrSrv?sizeof(SOCKADDR));
if?(0?!=?result)
{
cout?<“Connect?error!?“?< WSACleanup();
}
return?result;
}
void?Csocket::CClose(SOCKET?client)
{
closesocket(client);
WSACleanup();
}
int?Csocket::CSend(SOCKET?client?const?char*?sendbuf?int?len)
{
int?result;
result?=?send?(client??sendbuf??len??0);
return?result;
}
void?Csocket::CRecv(SOCKET?client?FILE*?fp)
{
char?recvBuf[200];
static?CRegexpT??regex_first(“\“[hH][tT]{2}[pP]\\:/{2}.*?(\“)“);
//?get?the?URL?like?“http://www.neusoft.com/...“
static?CRegexpT??regex_second(“\“[hH][tT]{2}[pP]\\:/{2}.*?(?=((/)|(\“)|(\\:)))“);
//?get?the?URL?like?“www.neusoft.com“
int?recvresult?=?0;
int?i?=?0;
string?temp;
do
{
memset(recvBuf0x00sizeof(recvBuf));
recvresult?=?recv(client?recvBuf?200?0);
MatchResult?result_first?=?regex_first.Match(recvBuf);
while(?result_first.IsMatched()?)
{
char?resu[200]?=?“?“;
for?(i=0;?i resu[i]?=?recvBuf[result_first.GetStart()+i];
fputs(resu?fp);
fprintf(fp?“\n“);
cout?<
result_first?=?regex_first.Match(recvBuf?result_first.GetEnd());
}
MatchResult?result_second?=?regex_second.Match(recvBuf);
while(?result_second.IsMatched())
{
char?resu[200]?=?“?“;
for?(i=0;?i resu[i]?=?recvBuf[result_second.GetStart()+i+8];
temp?=?resu;
myURL.push_back(temp);
result_second?=?regex_second.Match(recvBuf?result_second.GetEnd());
}
}while?(recvresult?!=?0);
cout?<“Received?over!“?<}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????33280??2008-06-20?13:29??理工大學優秀畢業設計論文及成果物--王光磊\本科畢業設計任務書_王光磊.doc
?????文件??????30208??2008-06-20?13:32??理工大學優秀畢業設計論文及成果物--王光磊\畢業評語.doc
?????文件??????25600??2008-06-20?13:05??理工大學優秀畢業設計論文及成果物--王光磊\論文封面.doc
?????文件???????2825??2008-05-29?19:01??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\CSocket.cpp
?????文件????????490??2008-04-28?10:52??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\Csocket.h
?????文件??????98132??2008-04-02?09:14??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\deelx.h
?????文件???????1451??2008-06-09?20:20??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\main.cpp
?????文件?????????38??2008-04-30?11:59??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\source.ini
?????文件???????1528??2008-06-08?13:49??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\Spider.cpp
?????文件????????208??2008-04-28?11:59??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\Spider.h
?????文件???????4889??2008-04-30?12:01??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\SpiderTest11.dsp
?????文件????????549??2008-04-30?11:05??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\SpiderTest11.dsw
?????文件??????82944??2008-06-09?20:55??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\SpiderTest11.ncb
?????文件??????53760??2008-06-09?20:55??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\SpiderTest11.opt
?????文件????????983??2008-06-09?20:17??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\SpiderTest11.plg
?????文件????????293??2008-04-01?08:46??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\stdafx.cpp
?????文件????????644??2008-04-28?13:55??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\stdafx.h
?????文件?????180304??2008-06-09?20:17??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\Debug\SpiderTest11.exe
?????文件?????476160??2008-06-09?20:16??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\Debug\SpiderTest11.pdb
?????文件??????16147??2008-04-30?11:07??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\Debug\stdafx.obj
?????文件?????192512??2008-06-09?20:16??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\Debug\vc60.pdb
?????文件??????24197??2008-06-09?20:17??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\Debug\main.obj
?????文件?????313424??2008-06-09?20:16??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\Debug\CSocket.obj
?????文件??????44169??2008-06-09?20:16??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\Debug\Spider.obj
?????文件?????630784??2008-07-01?17:44??理工大學優秀畢業設計論文及成果物--王光磊\論文的PPT-王光磊.ppt
?????文件????1397760??2008-07-01?17:32??理工大學優秀畢業設計論文及成果物--王光磊\畢業設計--王光磊0628.doc
?????目錄??????????0??2008-07-01?17:28??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物\Debug
?????目錄??????????0??2008-07-01?17:28??理工大學優秀畢業設計論文及成果物--王光磊\網絡爬蟲成果物
?????目錄??????????0??2008-07-01?17:26??理工大學優秀畢業設計論文及成果物--王光磊
-----------?---------??----------?-----??----
............此處省略2個文件信息
- 上一篇:國密SM4的5中模式C語言實現,vs工程,包含頭文件和源碼
- 下一篇:實驗銀幣問題
評論
共有 條評論