excel vba抓取网页数据(段时间接到一个抓取任务的目标是,对网站的违章数据进行抓取)
优采云 发布时间: 2022-03-20 00:20excel vba抓取网页数据(段时间接到一个抓取任务的目标是,对网站的违章数据进行抓取)
抓取以 Post 模式提交表单的 网站,并获取浏览器 Post 数据。
在这期间,我接到了一个抢夺任务。任务的目标是抓取网站的非法数据。刚接到这个任务,粗略分析了一下网站的代码格式,觉得这个任务一天就可以完成(应该也能节省一点看新闻的时间..:))。
由于之前用过Nutch爬取网站,我认为只要完成了网页的有效数据提取,这个任务就完成了。三个小时后,提取部分测试通过,我将代码组装到Nutch(我修改后Nutch已经完全认不出来了),并实现了爬取。爬取的测试链接是:,经过多次调试,没有得到预期的网页。单步跟踪后,一直被忽视的问题被发现了。原来我之前爬的数据都是用Get方法提交的,但是这次不同的是是用Post方式提交的,所以测试链接虽然在浏览器中可以获取到预期的网页,但是却无法获取到预期的网页通过使用 Socket 的 Get 方法。(到这里我才觉得问题没那么简单。) 一天过去了。. . :)
为了把Get方法的Socket连接改成Post方法,我安排了一个上午上网查资料。根据网上的资料,Post提交的表单比Get提交的数据量大,而且Post可以提交不可见的数据,那么问题就变成了如何获取网页Post的数据。有很多关于通过Post访问网站的信息,但是我找不到“如何在页面上获取Post提交的数据”。在搜索了很多都没有结果的情况下,只能请朋友帮忙了。又一天过去了。. . :)
按照我哥的指示,我可以通过使用网络嗅探器获取浏览器提交的所有信息,于是我再次搜索,发现了三个嗅探器(Visual Sniffer、Effetech Sniffer、URLSnooper)。Visual Sniffer 只能将服务返回给浏览器。数据,Effetech Sniffer安装后老是报错(PCAP error: Error operating the networking adapter!),不过好在URLSnooper达到了我的目的,分析了如下数据:
发布 /wzcx_1.asp HTTP/1.1
接受: */*
推荐人:
接受语言:en-us
内容类型:application/x-www-form-urlencoded
接受编码:gzip,放气
用户代理:Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.1;SV1;i-NavFourF;TencentTraveler;.NET CLR 1.1.4322;.NET CLR 2.0.50727)
主机:内容长度:51
连接:保持活动
缓存控制:无缓存
Cookie:ASPSESSIONIDCQTCQQRR=GIGJOKMDNNBKAKEOMDHGLPEB
search_exist=1&search_value=a88124&search_cartype=0
将此信息代入程序中,成功得到预期数据。. . .