利用C语言获得网页编码
- #include <stdio.h>
- #include <winsock.h>
- #include <string.h>
- #pragma comment(lib, "ws2_32.lib")
- void geturl(char *url)
- {
- WSADATA WSAData={};
- SOCKET sockfd;
- struct sockaddr_in addr;
- struct hostent *pURL;
- char myurl[BUFSIZ];
- char *pHost = , *pGET = ;
- char host[BUFSIZ], GET[BUFSIZ];
- char header[BUFSIZ] = "";
- static char text[BUFSIZ];
- int i;
- /*
- * windows下使用socket必须用WSAStartup初始化,否则不能调用
- */
- if(WSAStartup(MAKEWORD(,), &WSAData))
- {
- printf("WSA failed\n");
- return;
- }
- /*
- * 分离url中的主机地址和相对路径
- */
- strcpy(myurl, url);
- for (pHost = myurl; *pHost != '/' && *pHost != '\0'; ++pHost);
- if ( (int)(pHost - myurl) == strlen(myurl) )
- strcpy(GET, "/");
- else
- strcpy(GET, pHost);
- *pHost = '\0';
- strcpy(host, myurl);
- printf("%s\n%s\n", host, GET);
- /*
- * 设定socket参数,并未真正初始化
- */
- sockfd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
- pURL = gethostbyname(host);
- addr.sin_family = AF_INET;
- addr.sin_addr.s_addr = *((unsigned long*)pURL->h_addr);
- addr.sin_port = htons();
- /*
- * 组织发送到web服务器的信息
- * 为何要发送下面的信息请参考HTTP协议的约定
- */
- strcat(header, "GET ");
- strcat(header, GET);
- strcat(header, " HTTP/1.1\r\n");
- strcat(header, "HOST: ");
- strcat(header, host);
- strcat(header, "\r\nConnection: Close\r\n\r\n");
- /*
- * 连接到服务器,发送请求header,并接受反馈(即网页源代码)
- */
- connect(sockfd,(SOCKADDR *)&addr,sizeof(addr));
- send(sockfd, header, strlen(header), );
- while ( recv(sockfd, text, BUFSIZ, ) > )
- {
- printf("%s", text);
- strnset(text, '\0', BUFSIZ);
- }
- closesocket(sockfd);
- WSACleanup();
- }
- int main()
- {
- char url[];
- printf("http://");
- scanf("%s", url);
- geturl(url);
- return ;
- }
利用C语言获得网页编码的更多相关文章
- asp.net 利用HttpWebRequest自动获取网页编码并获取网页源代码
/// <summary> /// 获取源代码 /// </summary> /// <param name="url"></param& ...
- 转:从开源项目学习 C 语言基本的编码规则
从开源项目学习 C 语言基本的编码规则 每个项目都有自己的风格指南:一组有关怎样为那个项目编码约定.一些经理选择基本的编码规则,另一些经理则更偏好非常高级的规则,对许多项目而言则没有特定的编码规则,项 ...
- 利用DIV+CSS制作网页过程中常用的基本概念及标签使
CSS主要用于对HTML文件功能的补充及扩展,其作用就是对HTML文件中各种排版进行设置,达到对网页中字体.颜色.背景.图片等的控制,使网页能够完全依照设计者的想法来显示. CSS可以控制网页的显示, ...
- 利用Crowbar抓取网页异步加载的内容 [Python俱乐部]
利用Crowbar抓取网页异步加载的内容 [Python俱乐部] 利用Crowbar抓取网页异步加载的内容 在做 Web 信息提取.数据挖掘的过程中,一个关键步骤就是网页源代码的获取.但是出于各种原因 ...
- 利用DIV+CSS制作网页过程中常用的基本概念及标签使用细节
CSS主要用于对HTML文件功能的补充及扩展,其作用就是对HTML文件中各种排版进行设置,达到对网页中字体.颜色.背景.图片等的控制,使网页能够完全依照设计者的想法来显示. CSS可以控制网页的显示, ...
- 浏览器正确理解和使用GBK及UTF-8(UTF-8 + BOM)网页编码
网页编码英文译为web page encoding.是在网页中指定其特定的字符编码格式的库. GBK是国家标准GB2312基础上扩容后兼容GB2312的标准. GBK的文字编码是用双字节来表示的.即不 ...
- 利用@media screen实现网页布局的自适应
利用@media screen实现网页布局的自适应 优点:无需插件和手机主题,对移动设备友好,能够适应各种窗口大小.只需在CSS中添加@media screen属性,根据浏览器宽度判断并输出不同的长宽 ...
- Swift3.0语言教程使用编码创建和初始化字符串
Swift3.0语言教程使用编码创建和初始化字符串 使用编码创建和初始化字符串 创建和初始化字符串除了可以使用上文中提到的方法外,还可以使用init(coder:)方法,此方法一般不常使用,其语法形式 ...
- ueditor的工具栏显示乱码解决方法 小问题.. 是你的页面编码与语言包js编码不符所导致的
ueditor的工具栏显示乱码解决方法 小问题.. 是你的页面编码与语言包js编码不符所导致的解决方法:用记事本将ueditor\..\lang\zh-cn\zh-cn.js打开,然后保存为ANSI ...
随机推荐
- 移动混合开发之HTML5在移动开发中的准则
1.尽量单页面开发 2.慎重选择前端UI框架,新手最好自己动手. 3.动画特效达到60fps 4.长度单位是用rem,即字体的宽度,字体宽度可根据 window.width/number.
- CGBitmapContextCreate函数参数详解
函数原型: CGContextRef CGBitmapContextCreate ( void *data, size_t width, size_t height, size_t bitsPerCo ...
- 利用Ajax+MSMQ(消息队列)+WebService实现服务器端向客户端的信息推送
需求: 每当数据库有数据更新时,推送到客户端 软需求: 1.服务器资源有限,要求资源占用尽可能小: 2.项目可控,不许调用第三方不可信不稳定的方法. 已有事例: 1.58到家采用的方法是TCP的长连接 ...
- 连接WCF报EntityFramework.SqlServer 错误的解决方法
现象: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFram ...
- [抓紧小长假的尾巴] 分析一个KeyFileMe
系统 : Windows xp 程序 : keyfileme 程序下载地址 :http://pan.baidu.com/s/1qYVfvu0 要求 : 编写KeyFile 使用工具 : OD 可在看雪 ...
- W3C代码标准规范
一.目的: 为什么要遵循标准我们作为生产者实际上只是位于中游,既不是上游的浏览器制造商,他们是标准的真正制定者,也不算是下游,他们是浏览器的终端使用者.这个角色就意味着我们位于一个接口的位置,我们需要 ...
- EasyUI 开发笔记(一)
由于某些原因,在公司做的后台需要改成类似于Ext.js 形式的后台,主要看好其中的 框架布局,以及tab开页面和弹出式内部窗体. 后来看看,改成EasyUI,较Ext.js 库小很多,也便于公司的初级 ...
- Android studio快捷键大全 和 eclipse对照(原)
Ctrl+空格 代码提示 (同Eclipse中Alt+/) Ctrl+Shjft+N 项目 ...
- ubuntu 非常简单的方式安装多个perl版本
参考http://stackoverflow.com/questions/22934080/how-to-downgrade-to-perl-5-10-1 Perlbrew will allow yo ...
- ThinkPHP 3.2 获取页面运行时间
在ThinkPHP中,可以通过在config.php中配置'SHOW_PAGE_TRACE' =>true,打开页面调试,实现页面载入时间的显示.但显示在页面右下角TP的LOGO显然不能适用于我 ...