• C++抓网页/获取网页内容


    #include<windows.h>

    #include<Wininet.h>

    #include<iostream>

    #include<fstream>

    #include<string>

    #pragma comment(lib,"WinInet.lib")

    using namespace std;

    int main()

    {

        HINTERNET hINet, hHttpFile;               

        char szSizeBuffer[32];

        DWORD dwLengthSizeBuffer = sizeof(szSizeBuffer);

        hINet = InternetOpen("IE6.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0 );    //InternetOpen初始化WININET.DLL

        string url = "http://www.sina.com";          //抓新浪网

        if ( !hINet )

        {

            cout << "InternetOpen fail" << endl;

            return 1;

        }

        hHttpFile = InternetOpenUrl(hINet, url.c_str(), NULL, 0, 0, 0);  //这个函数连接到一个网络服务器上并且最被从服务器上读取数据

        if(!hHttpFile)

        {

            cout << "error open url" << endl;

            return 1;

        }

        BOOL bQuery = HttpQueryInfo(hHttpFile,

                                    HTTP_QUERY_CONTENT_LENGTH,

                                    szSizeBuffer,

                                    &dwLengthSizeBuffer, NULL); //得到关于文件的信息

        if(bQuery ==false)

        {

            InternetCloseHandle(hINet); 

            cout << "error query info" << endl;

            return 3;

        }

        int FileSize=atol(szSizeBuffer);    //atol函数把字符串转换成长整型数

        string revData;

        revData.resize(FileSize);

        DWORD dwBytesRead;

        BOOL bRead = InternetReadFile(hHttpFile, &revData[0], FileSize, &dwBytesRead);     //web浏览器将在InternetReadFile上循环 ,不停地从Internet上读入数据块。

        if(!bRead)

        {

            cout << "error to read file" << endl;

            return 4;

        }

        ofstream   out_file("duhui.txt");   

        out_file << revData;              //输出到文件

        InternetCloseHandle(hHttpFile);   //关闭句柄

        InternetCloseHandle(hINet);

        cout << "抓取成功!/n" << endl;

        system("pause");

        return 0;

    }

    只有想不到,没有做不到!!!
    鸿鹄IT网络学院
  • 相关阅读:
    二分图匹配初步
    动态规划初步
    一些排日程的经典方法
    petri网初步
    笔记:美国院士教你写论文
    Ubuntu18.04彻底删除MySQL数据库
    ubuntu18.04 安装 wps2019
    ubuntu18.04 阿里镜像源
    Ubuntu 18.04 使用标准Ubuntu 仓库进行自动化安装NVIDIA驱动
    linux maven环境变量配置
  • 原文地址:https://www.cnblogs.com/zhongbin/p/3178546.html
Copyright © 2020-2023  润新知