VC中使用CInternetSession抓取网页内容
在 VC 中用 WinInet 的 CInternetSession::OpenURL(url),得到一个 CFile,读取其中的内容即可,详细代码如下
其他如不从缓存中读取内容及如何使用代理连接现在就不说了,可以参考下面的链接,或者下次补上。另外不妨看看 Java 是如何读取 URL 内容的,更简单
内容取过来之后,总是希望从中拣出需要的数据,可惜 VC6 中没有自己的正则表达式库,所以下一步要学用 boost 的正则表达式库。
参考链接:1. VC++6.0 通过HTTP方式获取网页
2. CInternetSession获取网页内容的问题
3. 利用CInternetSession从网站获取信息,并利用CString拆分查找特定信息 永久链接 https://yanbin.blog/vc-cinternetsession-catch-web-page/, 来自 隔叶黄莺 Yanbin's Blog
[版权声明]
本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。
1#include <stdio.h>
2#include <afxinet.h>
3
4int main(int argc, char* argv[])
5{
6 CInternetSession session("HttpClient");
7 char * url = " http://www.imobile.com.cn/simcard.php?simcard=1392658";
8 CHttpFile* pfile = (CHttpFile *)session.OpenURL(url);
9
10 DWORD dwStatusCode;
11 pfile -> QueryInfoStatusCode(dwStatusCode);
12 if(dwStatusCode == HTTP_STATUS_OK)
13 {
14 CString content;
15 CString data;
16 while (pfile -> ReadString(data))
17 {
18 content += data + "\r\n";
19 }
20 content.TrimRight();
21 printf(" %s\n " ,(LPCTSTR)content);
22 }
23 pfile -> Close();
24 delete pfile;
25 session.Close();
26
27 return 0 ;
28}其他如不从缓存中读取内容及如何使用代理连接现在就不说了,可以参考下面的链接,或者下次补上。另外不妨看看 Java 是如何读取 URL 内容的,更简单
1GetMethod httpMethod = new GetMethod("http://unmi.blogcn.com");
2int statusCode = new HttpClient().executeMethod(httpMethod);
3if(statusCode == HttpStatus.SC_OK)
4{
5 System.out.println(httpMethod.getResponseBodyAsString());
6}
7httpMethod.releaseConnection();内容取过来之后,总是希望从中拣出需要的数据,可惜 VC6 中没有自己的正则表达式库,所以下一步要学用 boost 的正则表达式库。
参考链接:1. VC++6.0 通过HTTP方式获取网页
2. CInternetSession获取网页内容的问题
3. 利用CInternetSession从网站获取信息,并利用CString拆分查找特定信息 永久链接 https://yanbin.blog/vc-cinternetsession-catch-web-page/, 来自 隔叶黄莺 Yanbin's Blog
[版权声明]
本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。