❶ 如何用vba抓取网页数据
Sub cc()
Cells.ClearContents
Set oDoc = CreateObject("htmlfile")
With CreateObject("WinHttp.WinHttpRequest.5.1")
.Open "GET",
"",
False
.Send
.WaitForResponse
oDoc.body.innerHTML = .responsetext
Set r = oDoc.All.tags("table")(7).Rows
For i = 0 To r.Length - 1
k = [a65536].End(3).Row
For j = 0 To r(i).Cells.Length - 1
Cells(k + 1, j + 1) = r(i).Cells(j).innerText
Next j
Next i
Set r = Nothing
End With
End Sub
ForeSpider数据采集系统是天津市前嗅网络科技有限公司自主知识产权的通用性互联网数据采集软件。软件几乎可以采集互联网上所有公开的数据,通过可视化的操作流程,从建表、过滤、采集到入库一步到位。支持正则表达式操作,更有强大的面向对象的脚本语言系统。
台式机单机采集能力可达4000-8000万,日采集能力超过500万。服务器单机集群环境的采集能力可达8亿-16亿,日采集能力超过4000万。并行情况下可支撑百亿以上规模数据链接,堪与网络等搜索引擎系统媲美。
软件特点:
一.通用性:可以抓取互联网上几乎100 %的数据
1.支持用户登录。
2.支持Cookie技术。
3.支持验证码识别。
4.支持HTTPS安全协议。
5.支持OAuth认证。
6.支持POST请求。
7.支持搜索栏的关键词搜索采集。
8.支持JS动态生成页面采集。
9.支持IP代理采集。
10.支持图片采集。
11.支持本地目录采集。
12.内置面向对象的脚本语言系统,配置脚本可以采集几乎100%的互联网信息。
二.高质量数据:精准采集所需数据
1.独立知识产权JS引擎,精准采集。
2.内部集成数据库,数据直接采集入库。
3.内部创建数据表结构,抓取数据后直接存入数据库相应字段。
4.根据dom结构自动过滤无关信息。
5.通过模板配置链接抽取和数据抽取,目标网站的所有可见内容均可采集,智能过滤无关信息。
6.采集前数据可预览采集,随时调整模板配置,提升数据精度和质量。
7.字段的数据支持多种处理方式。
8.支持正则表达式,精准处理数据。
9.支持脚本配置,精确处理字段的数据。
三.高性能:千万级的采集速度
1.C++编写的爬虫,具备绝佳采集性能。
2.支持多线程采集。
3.台式机单机采集能力可达4000-8000万,日采集能力超过500万。
4.服务器单机集群环境的采集能力可达8亿-16亿,日采集能力超过4000万。
5.并行情况下可支撑百亿以上规模数据链接,堪与网络等搜索引擎系统媲美。
6.软件性能稳健,稳定性好。
四.简易高效:节约70%的配置时间
1.完全可视化的配置界面,操作流程顺畅简易。
2.基本不需要计算机基础,代码薄弱人员也可快速上手,降低操作门槛,节省企业爬虫工程师成本。
3.过滤采集入库一步到位,集成表结构配置、链接过滤、字段取值、采集预览、数据入库。
4.数据智能排重。
5.内置浏览器,字段取值直接在浏览器上可视化定位。
五. 数据管理:多次排重
1. 内置数据库,数据采集完毕直接存储入库。
2. 在软件内部创建数据表和数据字段,直接关联数据库。
3. 采集数据时配置数据模板,网页数据直接存入对应数据表的相应字段。
4. 正式采集之前预览采集结果,有问题及时修正配置。
5. 数据表可导出为csv格式,在Excel工作表中浏览。
6. 数据可智能排除,二次清洗过滤。
六. 智能:智能模拟用户和浏览器行为
1.智能模拟浏览器和用户行为,突破反爬虫限制。
2.自动抓取网页的各类参数和下载过程的各类参数。
3.支持动态IP代理加速,智能过滤无效IP代理,提升代理的利用效率和采集质量。
4.支持动态调整数据抓取策略,多种策略让您的数据无需重采,不再担心漏采,数据采集更智能。
5.自动定时采集。
6.设置采集任务条数,自动停止采集。
7.设置文件大小阈值,自动过滤超大文件。
8.自由设置浏览器是否加速,自动过滤页面的flash等无关内容。
9.智能定位字段取值区域。
10.可以根据字符串特征自动定位取值区域。
11.智能识别表格的多值,表格数据可以完美存入相应字段。
七. 优质服务
1.数据采集完全在本地进行,保证数据安全性。
2.提供大量的各个网站配置模板在线下载,用户可以自由导入导出。
3.升级后续不断开发的更多功能。
4.更换2次绑定的计算机。
5.为用户提供各类高端定制化服务,全方位来满足用户的数据需求。
❸ vba如何抓取网页上的数据
代码:
Private Sub CommandButton1_Click()
Dim IE As Object
Dim i As Integer
i = 1
'打开网页:创建一个IE对象,然后给一些属性赋值。Visible是可见性,navigate是网页地址
Set IE = CreateObject('internetexplorer.application')
With IE
.Visible = True
.navigate 'http://hanyu.iciba.com/pinyin.html'
'等待网页完全加载
Do Until .ReadyState = 4
DoEvents
Loop
'拷贝汉字到网页文本框,然后点击转换按钮,并取出转换结果
Do While Sheets('sheet1').Cells(i 1, 1).Value <> ''
'从IE.Document.all句柄中把页面上要使用的节点找出来。这里的方法是:
.document.all('source').Value 给以source为ID的文本框赋值
.document.all.tags('img')(1).Click 点击图片集合里的第二张图片
.document.all('to').Value 取出以to为ID的文本框内容
.document.all('source').Value = Sheets('sheet1').Cells(i 1, 1).Value
.document.all.tags('img')(1).Click
Do Until .ReadyState = 4
DoEvents
Loop
Sheets('sheet1').Cells(i 1, 2).Value = .document.all('to').Value
i = i 1
Loop
'关闭网页
.quit
End With
End Sub
代码解释:(见注释)
贴士:
1)VBA只能操作IE浏览器,原因就一句话:都是微软家的产品嘛
2)要先引用Micorsoft Internet Controls
❹ excel2016。如何 vba 抓取网页指定数据,并且自动更新至excel,网页登陆有用户名和密
1、这个问题相对比较专业。建议再去知乎看看
2、另外咨询下淘宝看看卖VBA程序的人都给出什么方案
3、以下代码转载自网络:
Dimhttp
Sethttp=CreateObject("Microsoft.XMLHTTP")
http.Open"POST","连接地址",False
http.send""
Ifhttp.Status=200Then
selection.text=http.responseText
EndIf
二是开启IE进程
Subtest()
Setie=CreateObject("InternetExplorer.Application")'设置变量
Withie'设置块
.Navigate("需要打开的网页的网址")'打开网页
.Visible=True'是否显示ie窗口
While.readystate<>4'延迟等待页面加载完毕
DoEvents
Wend
Fori=22To49Step3'取数循环
S=S&""&.Document.all.tags("td")(i).innerTEXT'取数据到变量,熟悉HTML的DOM可以修改这个实现各种内容
Nexti
EndWith'块结束
S=LTrim(S)'删除左边空格
Application.SendKeys"^{F4}"'发送按键关闭当前浏览器标签
MsgBoxS'显示结果
Setie=Nothing'释放内存
EndSub
❺ 求助,利用excel vba提取数据库数据问题
1、汉字在前,数字在后面的情形。可以用MID,min, find三个函数来实现提取里面的数字。如图:在B2输入“=MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&“0123456789”)),20)”
Excel怎么只提取表格中的数字
5、指定从第几个数组提取开始。也就是说在不连续的那些数字中,从第几次出现的数组开始提取。同样在模块那里输入如下代码:
Function GetNums(rCell As Range, num As Integer) As StringDim Arr1() As String, Arr2() As StringDim chr As String, Str As StringDim i As Integer, j As IntegerOn Error GoTo line1
Str = rCell.TextFor i = 1 To Len(Str)chr = Mid(Str, i, 1)If (Asc(chr) 《 48 Or Asc(chr) 》 57) ThenStr = Replace(Str, chr, “ ”)End IfNext
Arr1 = Split(Trim(Str))ReDim Arr2(UBound(Arr1))For i = 0 To UBound(Arr1)If Arr1(i) 《》 “” ThenArr2(j) = Arr1(i)j = j + 1End IfNext
GetNums = IIf(num 《= j, Arr2(num - 1), “”)line1:End Function
❻ 如何用VBA调用数据库中数据
首先在工具 引用 中引入ADO组件(全名叫Microsoft ActiveX Data什么的,很好好找),然后声明一个连接变量 conn as ADODB.Connetion用来连接数据库,这里需要连接字符串,不知道你是什么类型数据库,所以连接字符串无法给出,再声明一个数据集变量ds as ADODB. DATASET用于执行SQL语句并返回结果集,得到结果集之后就可以访问里面的内容了