首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用毫秒级的url抓取网页Unix

用毫秒级的url抓取网页Unix
EN

Stack Overflow用户
提问于 2019-05-22 12:43:03
回答 1查看 92关注 0票数 -2

我浏览的网页有几个页面。我想要点击这些元素或玩网址,从而能够复制数据。初始URL在=1& playerType = ALL & ts = 1558502019375处结束,在我的代码中有一个循环,它应该一页接一页地获取数据,但我无法完成它。

代码语言:javascript
复制
Sub UPDATE_DATA_MLB()
Application.ScreenUpdating = False

'dimension (set aside memory for) our variables
Dim objIE As InternetExplorer
Dim ele As Object
Dim y As Integer
Dim EstaPagina As Byte
Dim EstaURL As String


'Página inicial

EstaPagina = 1
'we will output data to excel, starting on row 1
y = 1

EstaURL = "http://mlb.mlb.com/stats/sortable.jsp#elem=%5Bobject+Object%5D&tab_level=child&click_text=Sortable+Player+hitting&game_type='R'&season=2018&season_type=ANY&league_code='MLB'&sectionType=sp&statType=hitting&page=1&playerType=ALL&ts=1558502019375" '&ts=1526432697176"

'start a new browser instance
Set objIE = New InternetExplorer
'make browser visible
objIE.Visible = False

Do Until EstaPagina = 255
  'navigate to page with needed data
  objIE.navigate EstaURL & EstaPagina
  'wait for page to load
  Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop

  'If UCase(Left(EstaURL, 211) & "1") = UCase(Left(objIE.LocationURL, (211 + Len(EstaPagina)))) And y > 1 Then Exit Do

  'look at all the 'tr' elements in the 'table' with id 'myTable',
  'and evaluate each, one at a time, using 'ele' variable
  For Each ele In objIE.document.getElementById("datagrid").getElementsByTagName("tr")
      'show the text content of 'tr' element being looked at
      'Debug.Print ele.textContent

      'each 'tr' (table row) element contains 4 children ('td') elements
      'put text of 1st 'td' in col A
      Sheets("Sheet1").Range("A" & y).Value = ele.Children(0).textContent
      'put text of 2nd 'td' in col B
      Sheets("Sheet1").Range("B" & y).Value = ele.Children(1).textContent
      'put text of 3rd 'td' in col C
      Sheets("Sheet1").Range("C" & y).Value = ele.Children(2).textContent
      'put text of 4th 'td' in col D
      Sheets("Sheet1").Range("D" & y).Value = ele.Children(5).textContent
      'put text of 4th 'td' in col f
      Sheets("Sheet1").Range("E" & y).Value = ele.Children(22).textContent
      'increment row counter by 1
      y = y + 1
  Next
EstaPagina = EstaPagina + 1
Loop
lobjIE.Quit
Set objIE = Nothing
Set ele = Nothing

Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5), _
  Header:=xlNo


Application.ScreenUpdating = True

MsgBox "Volcado terminado", vbInformation
Range("A1").Select

  'save the Excel workbook
  ActiveWorkbook.Save
End Sub ```
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56249457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档