求助:c++写网络爬虫!
我原来用java写过一个爬虫,现在用c++写,遇到一些问题。
发现c++的网络编程还是挺复杂的,要调用到底层的函数。我想求教谁用C++写过爬虫的,我应该是用winsock2编程呢还是调用MFC中的CSocket编程还是有其他更好方式?
还有c++写爬虫要注意到哪些问题?麻烦知道的帮助我一下吧!
[解决办法]
不要用MFC中的CSocket写,这几乎是MFC中最垃圾一部分(个人看法)。
C++网络爬虫,网上应该会有源代码吧?搜搜。
[解决办法]
给你一个简单的例子
#include <fstream>
#include <afx.h>
#include <afxinet.h>
using std::ofstream;
using std::endl;
int main()
{
CInternetSession session("HttpClient");
CString urlBase = "http://t.sina.com.cn/";
DWORD dwStatusCode;
char buffer[16];
bool flag=true;
for (unsigned long i(1);flag;++i)
{
CHttpFile *pfile = (CHttpFile *)session.OpenURL(urlBase+_ltoa(i,buffer,10));
pfile -> QueryInfoStatusCode(dwStatusCode);
if(dwStatusCode == HTTP_STATUS_OK)
{
CString data;
while (pfile -> ReadString(data))
{
}
}
else
{
flag=false;
}
pfile->Close();
delete pfile;
}
session.Close();
return 0;
}