注册 登录
编程论坛 VC++/MFC

winpcap抓取网页标题

守住一颗心 发布于 2013-08-15 15:03, 1682 次点击
求大神帮忙,用vc6.0编写的,利用winpcap抓取网页标题,我现在知道怎么抓取从主机发往服务器的数据,已经成功抓取URL,现在想抓取从服务器发往主机的数据包,数据包里有HTML,用winpcap怎么抓取?求帮忙啊!!!!
17 回复
#2
yuccn2013-08-15 15:51
你是不懂抓取还是抓取了不懂得如何分析出来?
那个东西有说明文档的,好像是一个回调把数据包返回给你。

如果你不懂怎么分析,那就得熟悉下http协议了。
#3
守住一颗心2013-08-15 16:09
不懂怎么分析,不知道标题在什么位置,怎么输出标题
#4
yuccn2013-08-15 16:14
先学习下http协议把,再加上一些html 知识
#5
守住一颗心2013-08-15 16:41
只有本站会员才能查看附件,请 登录
这个是我刚才抓取的数据,其他网页都是乱码,就这个不是,标题就在上面,但是不知道怎么把标题单独提取出来显示,还有其他网页乱码不知怎么解决。
#6
守住一颗心2013-08-15 16:43
http协议跟html我看了好几天了都,知道HTML在数据的body里面,就是不会提取
#7
yuccn2013-08-15 17:52
“其他网页都是乱码”
估计就是字符集编码问题了。

要解析里面的数据,如果没有现成的库,那就得自己解析了

看几天还不行的,要深入了解。
http协议我都看这块差不多一年了,也是这样的菜
#8
zklhp2013-08-15 17:55
比如我们正在看的这个网页的源码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.
<html xmlns="http://www.
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>winpcap抓取网页标题 - VC++/MFC - C++论坛 - 编程论坛</title>
<link rel="shortcut icon" href="https://bbs.bccn.net/favicon.ico" type="image/x-icon" />
    <link rel="stylesheet" type="text/css" href="skin/skin1_thread.php?urlget=FF__1__99" />
 <script src="include/javascript/main.php?urlget=FF__99" type="text/javascript"></script>

一眼就看出哪是标题了罢
#9
守住一颗心2013-08-16 08:12
回复 7楼 yuccn
恩,解析这块还不会呢,比较菜
#10
守住一颗心2013-08-16 08:12
回复 8楼 zklhp
你的HTML代码是怎么得来的啊?抓包工具?!
#11
守住一颗心2013-08-16 08:17
回复 7楼 yuccn
还有个问题就是,我需要先解析代码,还是先抓取啊?我是在抓取的数据里搜索<title>来抓取的,如果不解析的话是不是找不到 <title>啊?!
#12
yuccn2013-08-16 09:57
回复 10楼 守住一颗心
在你浏览的网页上面,按F12.
如果是ie浏览的话,也可以右键有个空白处,点击菜单项“查看源文件”

[ 本帖最后由 yuccn 于 2013-8-16 13:22 编辑 ]
#13
yuccn2013-08-16 10:02
回复 11楼 守住一颗心
解析的话,如果没有开源库,就得自己去解析了,简单点的就是把数据保存下来,
char *title = strstr(html_data, "<title>");
title += 7;
char *end = strstr(title, "</title>");
*end='\0';

title 就是那个标题了。自己做一下容错(判断指针是否空之类)就行了。

如果要写的功能强一点的,就得自己对每个元素解析保存下来了。。

[ 本帖最后由 yuccn 于 2013-8-16 10:04 编辑 ]
#14
守住一颗心2013-08-16 10:43
回复 13楼 yuccn
太感谢你了啊!刚进来也不知怎么报答你啊?!
再问一个问题,为什么有的网页不是乱码,有的网页是呢,这跟网页有关么?
#15
yuccn2013-08-18 16:42
回复 14楼 守住一颗心
你是指获取到的标题是乱码吗?
如果是,那么估计就是charset问题了,
#16
守住一颗心2013-08-19 08:30
回复 15楼 yuccn
但是两个网页都是gb2312编码的,咱们这个论坛的能正常显示,但是另一个不能正常显示。
如果是这个charset的问题怎么解决呢?
#17
yuccn2013-08-19 08:43
一般的网站都指明charset的。
比如本页面,有一行
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
指明了gb2312,如果是charset问题,那么按照指定的charset解码看看。

不过那个乱码问题我也不确定就是charset问题。只是猜测而已
1