用VB抓取网页数据 [复制链接]
我是制药业的一名从业者,经常会调研行业情况,经常用到类似http://www.drugfuture.com/cndrug/national.aspx?ApprovalNumber=&ApprovalNumberOld=&NDCNumber=&ProductName=&EnglishName=&TradeName=&Manufacturer=%E5%8D%8E%E6%B5%B7&Dosage=&Form=&Category=&ApprovalDateStart=&ApprovalDateEnd=&Restriction=fuzzy 的查询,经常ctrl C+ctrl V,而且有的厂家品种多达数百页,实在坑爹,跪求群里高人指点,如何通过VB,能够实现自动数据的采集和更新(类似附件的效果,PS:附件从网上荡的)
新建文件夹.rar
48.52 KB, 下载次数: 7
本主题由 zhaogang1960 于 2013-5-4 04:41 分类
分享0
收藏0
有用0
无用0
猜您喜欢
Excel 难道真的没办法吗?[求助]Web 查询未返回任何数据
Excel 网页采集(网页抓取)教程第一课-用XMLHTTP获取数据并用Adodb.Stream转换编码提取信息
Excel 多条件查询数据,结果复制到另一个表格中!
Excel 求助:将左边的数据按右边的方式安排
Excel 提取数据?
Excel [求助]如何用宏去加上批注?
百度推荐
举报
1234
liucqa
36508
财富
512
鲜花
17
技术
等级 18学导
积分排行50帖子10332精华3微积分0
串个门
加好友
打招呼
发消息
2楼
发表于 2013-5-3 08:01:51 |只看该作者
★财务、会计、人力资源、行政、生管、销售、市场、学校管理:Excel 行业应用系列视频课程精彩放送中★
http://club.excelhome.net/thread-893760-1-1.html
有编程帖想进入知识树的,请发链接给我。
各种需求,免费咨询请联系 QQ:564955427
VBA一对一培训、C# XLL封装、网页采集
举报
kangatang
8711
财富
209
鲜花
2
技术
等级 5EH铁杆
积分排行371帖子2353精华0微积分0
串个门
加好友
打招呼
发消息
3楼
发表于 2013-5-3 11:59:36 |只看该作者
★EH梦之队《实战技巧精粹》系列图书火热发售, 配套视频教程免费下载中★
没有通用的高效网页采集程序。只能CASE BY CASE
举报
yzlxyz
134
财富
0
鲜花
0
技术
等级 2EH初级
积分排行3000+帖子28精华0微积分0
串个门
加好友
打招呼
发消息
4楼
发表于 2013-5-18 20:37:58 |只看该作者
★ 想轻松管理数据? 想快速设计管理软件? 想老板对你刮目相看? 哪还不快用FoxTable? ★
liucqa 发表于 2013-5-3 08:01
http://club.excelhome.net/thread-893760-1-1.html
...
好人,为我指明方向,好好学学
再次感谢
举报
tonyibm
4908
财富
2
鲜花
0
技术
等级 4EH高级
积分排行480帖子1486精华0微积分0
串个门
加好友
打招呼
发消息
5楼
发表于 2013-5-18 21:55:18 |只看该作者
★《精粹》中的精粹:成为Excel高手的捷径★ ★《循序渐进学Excel》视频教程免费教您起步★
这些数据很规整,table又有id,直接用ie,
下面是取出的国产药品数据
[code=vb]Sub perl()
Dim ie As Object
Dim doc As Object
Dim x, y As Integer
Dim mytable As Object
Set ie = CreateObject("InternetExplorer.Application")
With ie
.Visible = False
.navigate "www.drugfuture.com/cndrug/national.aspx?ApprovalNumber=&ApprovalNumberOld=&NDCNumber=&ProductName=&EnglishName=&TradeName=&Manufacturer=%E5%8D%8E%E6%B5%B7&Dosage=&Form=&Category=&ApprovalDateStart=&ApprovalDateEnd=&Restriction=fuzzy"
Do Until .ReadyState = 4
DoEvents
Loop
End With
Set mytable = ie.document.getelementbyid("GridViewNational")
For x = 0 To mytable.Rows.Length - 1
For y = 0 To mytable.Rows(x).Cells.Length - 1
Sheets(3).Cells(x + 1, y + 1) = mytable.Rows(x).Cells(y).innertext
Next y
Next x
Sheets(3).Activate
Columns(4).Select
Selection.TextToColumns Destination:=Sheets(3).Cells(1, 4), DataType:=xlDelimited, FieldInfo:=Array(1, 2)
Set ie = Nothing
End Sub
[/code]
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。