从本地html提取表格,如何从这个网页提取表格数据,做成电子表格呢?谢谢

得分:15

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

=GetDate("http://xkkm.)  && 1.首先获取学校和网址数据,共有:1622个学校

*!*    MyData1 : 专业数据表

Create Cursor MyData1 ( 学校序号 I, 地区 C(20), 学校代码 C(5), 学校名称 C(60), ;

专业序号 I, 层次 C(10), 专业名称 C(60), 科目要求 C(60), 所含专业 C(200) )

Select MyData

Go Top

Scan Next 10  && 调试时,尽量采集少量数据

Wait Window AT 10, 10 "正在提取:" + Transform(Recno()) + " of " + Transform(Reccount()) Nowait

m.学校序号 = MyData.学校序号

m.地区 = MyData.地区

m.学校代码 = MyData.学校代码

m.学校名称 = MyData.学校名称

m.学校网址 = Alltrim(MyData.学校网址)  && URL 两次编码

m.学校网址 = Strextract(MyData.学校网址, "", "amp") + "xxmc=" +  URLEncode(Strextract(MyData.学校网址, "xxmc="))

=GetDate1("http://xkkm. + M.学校网址)  && 2.根据学校和网址数据,再获取专业数据

Select MyData

Endscan

Select MyData1

Go Top

Browse Last

Function GetDate(cURL As Character)  && 获取学校数据

Wait Window AT 10, 10 "正在提取:学校/代码的数据,请稍等,,," Nowait

oIE = Createobject("Internetexplorer.Application")

oIE.Visible = .F.

oIE.Navigate(cURL)

tStartSecond = Seconds()

Do While oIE.Busy = .T. Or oIE.ReadyState#4

If Seconds() - tStartSecond > 10

Exit

Endif

Inkey(0.5)

Enddo

*!*    MyData : 学校数据表

Create Cursor MyData (学校序号 I, 地区 C(20), 学校代码 C(5), 学校名称 C(60), 学校网址 C(200) )

O = oIE.Document.GetElementsByTagName("tr")  && HTML 表格中的行,

For I = 1 To O.Length - 1  && 获取该元素 (cElement) 的每个内容

Insert Into MyData Values ( Val(Strextract(O.Item(I).InnerHtml, ">", "

Strextract(O.Item(I).InnerHtml, ">", "", "

Strextract(O.Item(I).InnerHtml, ">", "

Endfor

oIE.Quit()

Endfunc

Function GetDate1(cURL As Character)  && 获取专业数据

oIE = Createobject("Internetexplorer.Application")

oIE.Visible = .F.

oIE.Navigate(cURL)

tStartSecond = Seconds()

Do While oIE.Busy = .T. Or oIE.ReadyState#4

If Seconds() - tStartSecond > 10

Exit

Endif

Inkey(0.2)

Enddo

Inkey(0.5)

Select MyData1

For Each objRow In oIE.Document.getElementsByTagName("table").[0].Rows   &&objTable.Rows

Insert Into MyData1 Values ( m.学校序号, m.地区, m.学校代码, ;

m.学校名称, Val(objRow.cells(0).innertext), ;

objRow.cells(1).innertext, objRow.cells(2).innertext, ;

objRow.cells(3).innertext, objRow.cells(4).innertext )

Store "" To m.地区, m.学校代码, m.学校名称

Next

oIE.Quit()

Endfunc

************************

Function UrlEncode(tcString, tlNoPlus)  && URL 编码

************************

Local lcReturn, lcChar, lnCounter

m.lcReturn=""

For m.lnCounter = 1 To Len(m.tcString)

m.lcChar = Substr(m.tcString, m.lnCounter, 1)

If Atc(m.lcChar, "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") > 0

m.lcReturn = m.lcReturn + m.lcChar

Loop

Endif

If Asc(m.lcChar) = 32 And !m.tlNoPlus

m.lcReturn = m.lcReturn + "+"

Loop

Endif

m.lcReturn = m.lcReturn + "%" + Right(Transform(Asc(m.lcChar), "@0"), 2)

Endfor

Return m.lcReturn

Endfunc

6f83fddf9cb9ff6843fffd45e1807199.gif

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值