免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: ztianshan
打印 上一主题 下一主题

[C] 如何通过自己的程序读取网页源码? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-03-07 16:53 |只看该作者
libcurl + glibc正则表达式

可以参考 http://trac.lcuc.org.cn/public/t ... est/TestSirCurl.cpp

论坛徽章:
0
12 [报告]
发表于 2008-03-07 22:28 |只看该作者
现在我已经把以下这两步做到了:

1,创建一个TCP的Socket
2,连接到对应的web服务器,

我通过发送数据得到了baidu的首也源码,但是我不知道如何让服务器返回搜索后的页面,
如何写这个Http请求啊?? 我在网上搜的 没有具体写到这个的!!

论坛徽章:
0
13 [报告]
发表于 2008-03-08 21:03 |只看该作者

回复 #12 ztianshan 的帖子

看一下submit的原理

论坛徽章:
0
14 [报告]
发表于 2008-03-09 09:29 |只看该作者
给一个 我写的例子吧

url 代表你要提交的baidu页面的url
host 代表 域名 就是你的www.baidu.com
msg = "POST " + url +" HTTP/1.1\r\nHOST: " + host +"\r\nContent-Type: application/x-www-form-urlencoded\r\n";
string strlen = "Content-Length: ";
               
string requestkey = "t1=" + key1 + "&t2=" +key2;
requestkey  就是你的请求。  如果对于web这方面实在没有概念,建议你看一下书。

t1 t1 都是web页面上面 input 的名字  key1 key2就是你要求得东西。

具体是什么 自己检查一下baidu首页就可以了
最后
char buff[1024] ={0};
sprintf(buff,"%d",requestkey.length());

最后的请求内容为 msg  + strlen + buff+ "\r\n\r\n" + requestkey
把这个送出去, 然后recv 就可以获取到内容了。

当然还有很多可以优化的地方了。 自己慢慢磨搜

论坛徽章:
0
15 [报告]
发表于 2008-03-09 09:31 |只看该作者
还有一点 提交数据需要使用url编码。 中文必须进行url编码。否则会有问题。
也就是key1 key2的值要url编码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP