怎么通过C语言读取网页里面的数据

怎么通过C语言读取网页里面的数据,第1张

简单的请求格式

GET /index.php HTTP/1.0

host:www.zixue7.com

当我们和服务器连接上之后,发送上面的数据过去,服务器就会返回 index.php 这个页面给我们。

GET 这个 是表示 以什么方式请求,HTTP中还有很多其他的请求方式,常用的就 GET POST (更详细的 可以点开上面 http协议 那个链接)

GET 后面紧跟一个空格 然后 给出,要获取的资源的名称, /index.php 就表示获取网站服务器根目录下 index.php 执行后所产生的内容,我们也可以改成 GET / HTTP/1.0 这就表示获取默认首页的内容 。 GET /1.html HTTP/1.0 就是获取 服务器根目录下 1.html的内容,很容易理解吧。

接下来隔一个空格 跟上 HTTP/1.0 表示 http协议的版本,这个是固定的 。

第二行 host:www.zixue7.com 用来指定 访问哪个主机。 大家都知道,一个服务器可以放很多个网站,每个网站有不同的域名,所以我们需要用这个host来指定 我们要访问的是哪个网站,这样 才能正确得访问到我们想访问的网站。

第一步,连接服务器。

第二步,按照http协议,发送请求数据,然后就是接受返回的内容。

没错,就这么简单。

在编写程序之前,我们先用一个小工具来模拟一下这个过程,好让我们对http协议了解更深入一些。

telnet工具 如果是 win7下的朋友 猛戳这里-->win7开启telnet功能

到此为止,我假设大家电脑上已经开启了 telnet功能,正题开始。

telnet 他是一个基于tcp/ip 协议的程序,为我们用户提供一个 与其他电脑通信的工具,我们可以使用他来和其他电脑进行连接通信。

开始->运行->输入telnet回车, 出现一个黑框如下。

我们这时就可以输入命令,来连接远程主机,比如我们这次是要连接我们自学去论坛 的服务器,

那么我们就输入 open www.zixue7.com 80 然后回车。

open 是打开的意思 后面跟上 要打开那个主机然后 后面跟上端口, web服务器默认使用的是80端口,所以 要加上80端口(不加端口 telnet默认是23端口)。

然后会出现下图的情况,这时候 我们就可以输入命令了,输入的命令都将被发送到自学去论坛的服务器上面。大家注意一下 下图红色箭头所指出的部分,那里就是一个输入光标,不用管其他的字。

这就代表 我们已经和远程主机连接上了,就相当于我们上节课中 客户端执行到 connect 函数 之后 就是要调用 send函数发送数据了,在这里 我们只需要按键盘输入到黑色窗口中 就会发送到服务端。

我们依次输入以下内容,(注意,不能按退格,输入错误了,就重新打开telnet,重新 *** 作。)

mysql的,首先你得连好环境,不知能不能帮到你,这本来是我在C++写的,你要是不懂的话这个对你可能完全没用。

MYSQL mysql//数据库连接句柄

MYSQL_RES *result

mysql_init (&mysql)

MYSQL_ROW sql_row

if(!mysql_real_connect(&mysql,"localhost","root","密码","数据库名字",3306,NULL,0))

{//mydb为你所创建的数据库,3306为端口号,可自行设定

printf("数据库连接失败\n")

}

else

{ mysql_query(&mysql, "SET NAMES GBK")//设置字体,因为中文可能乱码

mysql_query(&mysql,"select * from 表名 where 公司名的字段名=‘你要搜的公司名’")//运行SQL语句

result=mysql_store_result(&mysql)

sql_row=mysql_fetch_row(result)//搜到的结果显示到数组sql_row[]

if(sql_row)

{

printf("没有找到")

return

}

输出sql_row[x]

//sql_row[x]就是结果,。x是字段在表的位置,第一个位置就是sql_row[0]。但是我不知道C语言如何输出

}

#include<mysql/mysql.h>

#include<stdio.h>

intmain()

{

MYSQL*conn

MYSQL_RES*res

MYSQL_ROWrow

char*server="localhost"//本地连接

char*user="root"//

char*password="525215980"//mysql密码

char*database="student"//数据库名

char*query="select*fromclass"//需要查询的语句

intt,r

conn=mysql_init(NULL)

if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0))

{

printf("Errorconnectingtodatabase:%s\n",mysql_error(conn))

}else{

printf("Connected...\n")

}

t=mysql_query(conn,query)

if(t)

{

printf("Errormakingquery:%s\n",mysql_error(conn))

}else{

printf("Querymade...\n")

res=mysql_use_result(conn)

if(res)

{

while((row=mysql_fetch_row(res))!=NULL)

{

//printf("num=%d\n",mysql_num_fields(res))//列数

for(t=0t<mysql_num_fields(res)t++)

printf("%8s",row[t])

printf("\n")

}

}

mysql_free_result(res)

}

mysql_close(conn)

return0

}

扩展资料

C语言使用注意事项:

1、指针是c语言的灵魂,一定要灵活的使用它:

(1)、指针的声明,创建,赋值,销毁等

(2)、指针的类型转换,传参,回调等

2、递归调用也会经常用到:

(1)、递归遍历树结构

(2)、递归搜索


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10801110.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存