【发布时间】:2015-12-06 14:37:39
【问题描述】:
我的任务是从旅行预订网站 (http://english.ctrip.com/trains/#ctm_ref=nb_tn_top) 抓取票务信息。
我已经零碎地编写了一些代码来打开目标 URL 并搜索定义的参数。我现在被困在解析信息上。
在 HTML(下面提供)中,我希望解析类类型、数据列车编号和座位左侧类。例如,我想从第一个实例中检索“2nd class seat”、“G102”和“416”。
我无法确定要使用的正确“类”以及可以利用哪些函数来定位特定值。
到目前为止我拥有的最少代码:
With oIE
.navigate sURL
.Visible = True
Do Until (.readyState = 4 And Not .Busy)
DoEvents
Loop
' search for particular entry
Set ElementCol = .document.getElementsByTagName("button")
For Each btnInput In ElementCol
If btnInput.innerText = "Search" Then
btnInput.Click
Exit For
End If
Next btnInput
' ensure page has been fully loaded
Do Until (.readyState = 4 And Not .Busy)
DoEvents
Loop
End With
Set ieDoc = oIE.document
Set ElementCol = ieDoc.getElementsByClassName("train-seat")
For Each optInput In ElementCol
MsgBox optInput.innerHTML
Next optInput
源 HTML:
<ul class="train-seat">
<li class=" ">
<span class="class-type">2nd class seat</span><span class="c-price"><span class="price-currency">CNY</span> <em class="price-num">553</em><span class="seat-left">416 left</span></span><a class="c-btn btn-key" href="javascript:;"
data-trainnumber="G102"
data-departtime="06:43"
data-departdate="1449187200"
data-departstation="Rochester"
data-arrivalstation="Albany"
data-seatname="2nd class">Book</a>
</li>
<li class=" ">
<span class="class-type">1st class seat</span><span class="c-price"><span class="price-currency">CNY</span> <em class="price-num">933</em><span class="seat-left">66 left</span></span><a class="c-btn btn-key" href="javascript:;"
data-trainnumber="G102"
data-departtime="06:43"
data-departdate="1449187200"
data-departstation="Rochester"
data-arrivalstation="Albany"
data-seatname="1st class">Book</a>
</li>
<li class=" ">
<span class="class-type">Business class seat</span><span class="c-price"><span class="price-currency">CNY</span> <em class="price-num">1,748</em><span class="seat-left">19 left</span></span><a class="c-btn btn-key" href="javascript:;"
data-trainnumber="G102"
data-departtime="06:43"
data-departdate="1449187200"
data-departstation="Rochester"
data-arrivalstation="Albany"
data-seatname="Business">Book</a>
</li>
【问题讨论】:
-
您现在使用的代码有什么问题?你想让它做什么不做什么?阅读this 可能会帮助您解决问题。
标签: html excel vba web-scraping