怎么用VBA或网络爬虫程序抓取网站数据

怎么用VBA或网络爬虫程序抓取网站数据,第1张

VBA网抓常用方法

1、xmlhttp/winhttp法:

用xmlhttp/winhttp模拟向服务器发送请求,接收服务器返回的数据

优点:效率高,基本无兼容性问题。

缺点:需要借助如fiddler的工具来模拟http请求。

2、IE/webbrowser法:

创建IE控件或webbrowser控件,结合htmlfile对象的方法和属性,模拟浏览器 *** 作,获取浏览器页面的数据。

优点:这个方法可以模拟大部分的浏览器 *** 作。所见即所得,浏览器能看到的数据就能用代码获取。

缺点:各种d窗相当烦人,兼容性也确实是个很伤脑筋的问题。上传文件在IE里根本无法实现。

3、QueryTables法:

因为它是excel自带,所以勉强也算是一种方法。其实此法和xmlhttp类似,也是GET或POST方式发送请求,然后得到服务器的response返回到单元格内。

优点:excel自带,可以通过录制宏得到代码,处理table很方便

。代码简短,适合快速获取一些存在于源代码的table里的数据。

缺点:无法模拟referer等发包头

也可以利用采集工具进行采集网页端的数据,无需写代码。

下面是截取字符串的字符,你要读取网页中的数据可以读取网页HTML源码,然后按照下面的方法读取需要的内容

假设我们有个字符串(我乱打几个字符):fafdhfjhsjkhfeuhuihf ahhasj ahhdfha 5464 64 afjke12.36wjkjeopq附件二即可 恐龙世界了

而我们只要读取这个字符中的12.36这个数值,就可以这么做 :

string content="fafdhfjhsjkhfeuhuihf ahhasj ahhdfha 5464 64 afjke12.36wjkjeopq附件二即可 恐龙世界了"

int start//开始位置

int end//结束位置

string temp="ahhdfha 5464 64 afjke"//这是你需要取的数值前一段字符串,取多长随便,但必须是唯一

start = content.IndexOf(temp)

string yaoquzhi=content.Substring(start+temp.Length)

end = yaoquzhi.IndexOf("36wjkjeopq附件二即可 恐")

if(start>-1)

{

yaoquzhi=yaoquzhi.Substring(0,end)

}

简单的说

首先,展示一个页面给用户,让他们输入

DEF。当他们按下确认键以后,这些数据提交到服务器。服务器开始执行之前写好的代码,连接到数据库,从数据库读出ABC,再开始ABCDEF的计算,计算出G后,将数据回传给浏览器,向用户展示出来


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存