MFC抓取网页代码简单版。

最近又在网上找了一些有关MFC抓取网页代码的文章看,发现有个比较简单的代码,和大家分享下。

    CInternetSession session(NULL, 0);
    CHttpFile* htmlFile = NULL;

    CString strLine, strHtml;
    CString url = _T("http://www.tqyb.com.cn/data/gzWeather/gz_weatherForecastInDays.js?");
    TCHAR sRecv[1024];
    UINT CodePage = 65001;//CP_UTF8:65001 CP_ACP:0
  strHtml = _T("");
    //获取网页源码
    htmlFile = (CHttpFile*)session.OpenURL(url);//重新打开连接
    DWORD dwStatusCode;  //接受请求返回值
    htmlFile->QueryInfoStatusCode(dwStatusCode);
    if (dwStatusCode == HTTP_STATUS_OK)
    {
        while (htmlFile->ReadString(sRecv, 1024))
        {

            // 编码转换,可解决中文乱码问题
            //gb2312转为unicode,则用CP_ACP
            //gbk转为unicode,也用CP_ACP
            //utf-8转为unicode,则用CP_UTF8
            int nBufferSize = MultiByteToWideChar(CodePage, 0, (LPCSTR)sRecv, -1, NULL, 0);

            wchar_t *pBuffer = new wchar_t[nBufferSize + 1];
            memset(pBuffer, 0, (nBufferSize + 1)*sizeof(wchar_t));

            //gb2312转为unicode,则用CP_ACP
            //gbk转为unicode,也用CP_ACP
            //utf-8转为unicode,则用CP_UTF8
            MultiByteToWideChar(CodePage, 0, (LPCSTR)sRecv, -1, pBuffer, nBufferSize*sizeof(wchar_t));

            strHtml += pBuffer;
            strHtml += "\r\n";
            delete pBuffer;
        }
    }

    htmlFile->Close();
    session.Close();
    delete htmlFile;

注意了,这个网址代码格式是UTF8,中文会乱码,所以加了一个字符之间的转换,//PageCode = 65001.

而且在设置vs时,字符集要设置成多字符。

项目->属性->字符集->多字节字符。

MFC抓取网页代码简单版。,布布扣,bubuko.com

时间: 2024-10-09 17:40:28

MFC抓取网页代码简单版。的相关文章

MFC抓取网页代码。

本人是初学MFC,这几天都要弄怎么抓取网页代码,一开始是一头雾水,不过最后多亏网上的丰富资源,让我有所收获,我也帮助新手们,下面是我自己参考网上资料所得的. 1 #pragma once 2 3 4 //抓取网页代码封装类 5 6 #include <afxinet.h> //所需要的函数的头文件. 7 8 9 class CGetInternet 10 { 11 public: 12 CGetInternet(); 13 virtual ~CGetInternet(); 14 15 //添加

【转载】用sas抓取网页数据简易版

链接:http://www.1point3acres.com/bbs/thread-91000-1-1.html 如果是一些比较简单的规则的网页抓取,可以用SAS,纯属娱乐,SAS入门的话推荐SAS BASE和ADVANCE认证的教材,这两个认证其实没啥用,但教材的内容对于一个专业的SAS Programmer足够了,sas data step, sql, macro,会这些日常处理应该都没问题了.%macro webScholar;/*memlib选项是将data放在内存里,而不是放在D盘,可

java抓取网页代码

代码如下 import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class Main { private String u; private String encoding; public static void main(String[] args) throws Exception { Mai

Linux 抓取网页方式(curl+wget)

Linux抓取网页,简单方法是直接通过 curl 或 wget 两种命令. curl 和 wget支持协议 curl  支持 http,https,ftp,ftps,scp,telnet等网络协议 wget支持 http,https,ftp网络协议 curl 和 wget抓取实例 抓取网页,主要有url 网址和proxy代理两种方式 1. url 网址方式抓取 (1)curl下载百度首页内容,保存在baidu_html文件中 curl  http://www.baidu.com/  -o  ba

转 PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)

PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据) 通过curl_setopt()函数可以方便快捷的抓取网页(采集很方便),curl_setopt 是php的一个扩展库 使用条件:需要在php.ini 中配置开启.(PHP 4 >= 4.0.2)       //取消下面的注释 extension=php_curl.dll 在Linux下面,需要重新编译PHP了,编译时,你需要打开编译参数——在configure命令上加上“–with-curl” 参数. 1.

一个实用的C#网页抓取类代码分享

一个实用的C# 网页抓取类 模拟蜘蛛,类中定义了超多的C#采集文章.网页抓取文章的基础技巧,下面分享代码: using System; using System.Data; using System.Configuration; using System.Net; using System.IO; using System.Text; using System.Collections.Generic; using System.Text.RegularExpressions; using Sys

Python3简单爬虫抓取网页图片

现在网上有很多python2写的爬虫抓取网页图片的实例,但不适用新手(新手都使用python3环境,不兼容python2),所以我用Python3的语法写了一个简单抓取网页图片的实例,希望能够帮助到大家,并希望大家批评指正. 1 import urllib.request 2 import re 3 import os 4 import urllib 5 #根据给定的网址来获取网页详细信息,得到的html就是网页的源代码 6 def getHtml(url): 7 page = urllib.r

HttpClient 4.x 执行网站登录并抓取网页的代码

HttpClient 4.x 的 API 变化还是很大,这段代码可用来执行登录过程,并抓取网页. HttpClient API 文档(4.0.x), HttpCore API 文档(4.1) package spider; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.

简单的使用php多线程抓取网页

PHP 利用 Curl Functions 可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,受限于php语言本身不支持多线程,所以开发爬虫程序效率并不高,这时候往往需 要借助Curl Multi Functions 它可以实现并发多线程的访问多个url地址.既然 Curl Multi Function如此强大,能否用 Curl Multi Functions 来写并发多线程下载文件呢,当然可以,下面给出我的代码: <?php $urls = array( 'http://w