php获取页面文字内容,C++ 与 php 的交互 之----- C++ 获取 网页文字内容,获取 php 的 echo 值。...

转载请声明出处!

http://www.cnblogs.com/linguanh/category/633252.html

距离上次 谈 C++ 制作json 或者其他数据传送给 服务器,时隔两个多月。

链接:http://www.cnblogs.com/linguanh/p/4340119.html

这次是从服务器上 中获取 文字内容到控制台,或者写入本地文本等操作,废话不多说,开讲。

-----------------------------------------------------------分割线-------------------------------------------------------------

测试服务器是: 新浪云 sea;

测试内容:获取 由 php 脚步从服务器中 读取出来的 数据,我这里是 微信用户的openID;

工具:VS 2012;

先上直观的图片,后上文本源码

总体例子

b4b33aa4a7801f972d384598cf35229c.png

核心函数

6554cc1c9ea72bad37fbf6fbf0e96ed5.png

对于多字节wchar 到 lpcswtr 的转化函数介绍,请转到 该链接

http://www.cnblogs.com/linguanh/p/4241939.html

39622dccd39c22f71aa86ad9690c4ea0.png

#include

#include

#include

#include

#define MAXBLOCKSIZE 28+1 // openID 固定长 28

#pragma comment(lib,"wininet.lib") //引入动态库

char* getWeiXinFromUserNameFromSEA(const char*);

using namespace std;

int main(){

char *p=NULL; //用于存放返回结果

p=getWeiXinFromUserNameFromSEA("http://913337456-my.stor.sinaapp.com/xxx.txt");

cout<

return ;

}

//我这里设置了函数 带有 返回值,大家可以不适用返回值!

char* getWeiXinFromUserNameFromSEA(const char *Url){

char *str = new char[MAXBLOCKSIZE]; // 用于最后返回的结果,动态分配

const char *x="From_AF"; int i = ;//第一个是打开标记,i是下面的转化控制变量

WCHAR exchange_text_from_url[],exchange_text_from_x[];

LPCWSTR py = exchange_text_from_url;// url 转 lpcwstr 的中间变量

LPCWSTR pz = exchange_text_from_x; //另外的信息

//unicode编码 下的 设置,我这里使用了宽字节,免去转换的麻烦

MultiByteToWideChar( , ,x, -,exchange_text_from_x, );//WCHAR to LPCWSTR,转化

MultiByteToWideChar( , ,Url, -, exchange_text_from_url, );

//结束转化

HINTERNET handle_for_init_internet = InternetOpen("From_AF", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, );

if (handle_for_init_internet != NULL){

HINTERNET handle_for_read_info = InternetOpenUrl(handle_for_init_internet, Url, NULL,NULL,NULL,NULL);

if (handle_for_read_info != NULL){

char result[MAXBLOCKSIZE]; //用于保存 缓冲区的数据组合

char buffer[MAXBLOCKSIZE];//下载文件的缓冲区

DWORD bytes_read = ;//下载的字节数

BOOL temp_boolean;

while(bytes_read!=){

//使用 InternetReadFile 从缓存区 读取 数据到 buffer 字符串,要度的字节数是 buffer的有效长度,控制是 bytes_read

temp_boolean = InternetReadFile(handle_for_read_info,buffer,sizeof(buffer), &bytes_read);

}

for(i;i

if(i==MAXBLOCKSIZE- && buffer[i]==''){ //去掉最后的干扰值 0

}else if(buffer[i]>= && buffer[i]<=){ //多种测试,最终还是使用 ASCII 码范围判断来解决了 烫烫烫~~~~

//cout<

//这里不直接搞出 buffer 是因为,缓存区里有很多 不知什么数据在输出的时候会变成很多烫,一般是空才会有烫

result[i]=buffer[i]; //经过测试,这个逐个赋值能够去掉 其中夹杂的 烫~~~

}

}

result[i]='\0'; //赋值 结尾 符,防止 自身爆 烫

strcpy(str,result); //copy 给 字符串指针,用于返回

//安全操作,销毁句柄

InternetCloseHandle(handle_for_read_info); handle_for_read_info = NULL;

}

InternetCloseHandle(handle_for_init_internet); handle_for_init_internet = NULL;

return str;

}

}

Python获取网页指定内容&lpar;BeautifulSoup工具的使用方法&rpar;

Python用做数据处理还是相当不错的,如果你想要做爬虫,Python是很好的选择,它有很多已经写好的类包,只要调用,即可完成很多复杂的功能,此文中所有的功能都是基于BeautifulSoup这个包. ...

telnet建立http连接获取网页HTML内容

利用telnet可以与服务器建立http连接,获取网页,实现浏览器的功能.它对于需要对http header进行观察和测试到时候非常方便.因为浏览器看不到http header. 步骤如下: 1. 运 ...

黄聪:C&num;获取网页HTML内容的三种方式

C#通常有三种方法获取网页内容,使用WebClient.WebBrowser或者HttpWebRequest/HttpWebResponse. 方法一:使用WebClient static void ...

asp&period;net 利用HttpWebRequest自动获取网页编码并获取网页源代码

/// /// 获取源代码 /// ///

&lbrack;python&rsqb;获取网页中内容为汉字的字符串的判断

实际上是这样,将获取到网页中表单内容与汉字字符串作比较,即: a = request.POST['a'] if a == '博客园': print 'ok' else: print 'false' a ...

使用SOCKET获取网页的内容

使用fsockopen()函数来实现获取页面信息,完整代码如下 //设置字符集(由于要抓取的网易网站字符集编码是gbk编码) header("content-type:text/html;c ...

Python3爬虫04(其他例子,如处理获取网页的内容)

#!/usr/bin/env python# -*- coding:utf-8 -*- import osimport reimport requestsfrom bs4 import Navigab ...

随机推荐

LAMP理论整理

关于PHP 官网:http://www.php.net 一.PHP简介 PHP是通用服务器端脚本编程语言,其主要用于web开发以实现动态web页面,它也是最早实现将脚本嵌入HTML源码文档中的服务器端 ...

python中set集合

一.set集合的特性 访问速度快 天生解决重复问题 二.set变量申明 s1 = set() s2 = set([1,2,3]) 备注:第二种方式在set类中直接传入一个序列. 三.set类中方法大全 ...

Python3学习&lpar;1&rpar;-基础篇

Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 安装(MAC) 直接运行: brew install python3 输入:python3 --v ...

Gradle学习系列之一——Gradle快速入门

这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构 ...

Linux下的Source命令及脚本的执行方式解析

Linux Source命令及脚本的执行方式解析 http://blog.csdn.net/wangyangkobe/article/details/6595143 当我修改了/etc/profile ...

gcc编译

一个C/C++文件要经过预处理.编译.汇编和连接等4步才能变成可执行文件:     (1)以#开头的命令被统称为预处理,比如"#include",宏定义命令"#defin ...

StringBuffer与StringBuilder详解

刚刚在参加网易实习生在线考试的时候,出了一道选择题谈到了StringBuilder这个类的一些选项,虽然那道题自己做对了,但是也提醒了我应该好好了解一些StringBuffer与StringBuild ...

2019&period;03&period;26 bzoj4444&colon; &lbrack;Scoi2015&rsqb;国旗计划(线段树&plus;倍增)

传送门 题意简述:现在给你一个长度为mmm的环,有nnn条互不包含的线段,问如果强制选第iii条线段至少需要用几条线段覆盖这个环,注意用来的覆盖的线段应该相交,即[1,3],[4,5][1,3],[4 ...

信息摘要算法之四:SHA512算法分析与实现

前面一篇中我们分析了SHA256的原理,并且实现了该算法,在这一篇中我们将进一步分析SHA512并实现之. 1.SHA简述 尽管在前面的篇章中我们介绍过SHA算法,但出于阐述的完整性我依然要简单的说明 ...

016 Spark中关于购物篮的设计&comma;以及优化(两个点)

一:介绍 1.购物篮的定义 2.适用场景 3.相关概念 4.步骤 5.编程实现 6.步骤 二:程序 1.程序 package com.ibeifeng.senior.mba.association i ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值