所以我是vba的新手,我试图获得哪个网站是Steam的价格。但我不能使用蒸汽,因为互联网浏览器没有开放蒸汽。 (它的开放但绘图不工作,我无法登录我的帐户,该网站没有响应我的点击。)2天前,它运作良好。但谷歌铬和边缘效果很好他们没有问题。
我重新安装我的Internet Explorer,我做了格式,但同样的。所以我不想使用Internet Explorer。我该怎么办,我不能使用IE来抓取数据。
有我的价格代码:
Sub SPrice1()
Dim objIE As InternetExplorer
Dim itemEle As Object
Dim Des1 As String
Dim y As Integer
Dim x As Integer
Set objIE = New InternetExplorer
y = 1
For x = 1 To 21
objIE.navigate "http://steamcommunity.com/market/search?appid=578080#p" & x & "x_name_asc"
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
MsgBox "Checking"
For Each itemEle In objIE.document.getElementsByClassName("market_listing_row_link")
Prc1 = itemEle.getElementsByClassName("market_listing_right_cell market_listing_their_price")(0).getElementsByTagName("span")(1).textContent
Sheets("Sheet1").Range("E" & y).Value = Prc1
y = y + 1
Next
Next x
objIE.Quit
End Sub
答案 0 :(得分:0)
以下是使用Selenium Basic抓取一个链接的示例,您可以轻松地将其调整为循环。安装后,您需要添加对Selenium类型库的引用。
CSS选择器:
我使用CSS“。” - className selector。
因此,.market_listing_game_name
表示获取className与"."
之后的字符串匹配的所有元素。同样的原则适用于其他原则。最后一个选择器是className normal_price
的链式选择器,其中className为market_table_value
。
示例CSS选择器(结果示例):
来自页面的示例:
代码输出中的示例:
注意:这些数字不断波动。
VBA代码:
Option Explicit
Public Sub GetInfoSel()
Dim d As WebDriver
Set d = New ChromeDriver
Const url = "https://steamcommunity.com/market/search?appid=578080#p1_name_asc"
With d
.Start "Chrome"
.Get url
Dim gameNames As Object, itemNames As Object, quantities As Object, normalPrices As Object
Set gameNames = .findElementsbyCSS(".market_listing_game_name")
Set itemNames = .findElementsbyCSS(".market_listing_item_name")
Set quantities = .findElementsbyCSS(".market_listing_num_listings_qty")
Set normalPrices = .findElementsbyCSS(".market_table_value .normal_price")
Dim currentItem As Long
For currentItem = 1 To gameNames.Count
Debug.Print "Game: " & gameNames(currentItem).Text
Debug.Print "Item: " & itemNames(currentItem).Text
Debug.Print "Qty: " & quantities(currentItem).Text
Debug.Print "Normal Price - " & normalPrices(currentItem).Text
Next currentItem
.Quit
End With
End Sub
答案 1 :(得分:-1)
使用python beautifulsoup https://www.crummy.com/software/BeautifulSoup/bs4/doc/
可以非常轻松地完成此任务