您的位置:首页 > 其它

VC中使用CInternetSession抓取网页内容

2009-02-20 06:37 405 查看
在 VC 中用 WinInet 的 CInternetSession::OpenURL(url),得到一个 CFile,读取其中的内容即可,详细代码如下

#include <stdio.h>

#include <afxinet.h>

int main(int argc, char* argv[])

{

CInternetSession session("HttpClient");

char * url = " http://www.imobile.com.cn/simcard.php?simcard=1392658";
CHttpFile* pfile = (CHttpFile *)session.OpenURL(url);

DWORD dwStatusCode;

pfile -> QueryInfoStatusCode(dwStatusCode);

if(dwStatusCode == HTTP_STATUS_OK)

{

CString content;

CString data;

while (pfile -> ReadString(data))

{

content += data + "/r/n";

}

content.TrimRight();

printf(" %s/n " ,(LPCTSTR)content);

}

pfile -> Close();

delete pfile;

session.Close();

return 0 ;

}

#include <stdio.h>
#include <afxinet.h>

int main(int argc, char* argv[])
{
CInternetSession session("HttpClient");
char * url = " http://www.imobile.com.cn/simcard.php?simcard=1392658"; CHttpFile* pfile = (CHttpFile *)session.OpenURL(url);

DWORD dwStatusCode;
pfile -> QueryInfoStatusCode(dwStatusCode);
if(dwStatusCode == HTTP_STATUS_OK)
{
CString content;
CString data;
while (pfile -> ReadString(data))
{
content  += data + "/r/n";
}
content.TrimRight();
printf(" %s/n " ,(LPCTSTR)content);
}
pfile -> Close();
delete pfile;
session.Close();

return   0 ;
}


其他如不从缓存中读取内容及如何使用代理连接现在就不说了,可以参考下面的链接,或者下次补上。另外不妨看看 Java 是如何读取 URL 内容的,更简单

GetMethod httpMethod = new GetMethod("http://unmi.blogcn.com");

int statusCode = new HttpClient().executeMethod(httpMethod);

if(statusCode == HttpStatus.SC_OK)

{

System.out.println(httpMethod.getResponseBodyAsString());

}

httpMethod.releaseConnection();

GetMethod httpMethod = new GetMethod("http://unmi.blogcn.com");
int statusCode = new HttpClient().executeMethod(httpMethod);
if(statusCode == HttpStatus.SC_OK)
{
System.out.println(httpMethod.getResponseBodyAsString());
}
httpMethod.releaseConnection();

内容取过来之后,总是希望从中拣出需要的数据,可惜 VC6 中没有自己的正则表达式库,所以下一步要学用 boost 的正则表达式库。

参考链接:1. VC++6.0 通过HTTP方式获取网页
2. CInternetSession获取网页内容的问题
3. 利用CInternetSession从网站获取信息,并利用CString拆分查找特定信息

From: http://www.blogjava.net/Unmi/archive/2007/06/23/125961.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: