我粘貼了一些HTML數據。這不是整個頁面。還有很多其他divs等等,以及我不需要的東西。下面是這個例子中最相關的部分。用美麗的湯解析這個數據
<div class="prox_sub22"><a onclick="return srpVehicleNameGAEvent();"
data-bind="attr:{href:VehicleDetailUrl, id: GetVehicleTitleId()}, html:AN.DSF.Data.SearchObjects.GetShortenVehicleName(Year+' '+Make+' '+Model+' '+StyleName)"
href="/new/2016/ford/expedition-el/king ranch/1FMJK1JTXGEF06926"
id="Vehicle_Title_0">2016 Ford Expedition EL 4WD 4d...</a>
</div>
<div class="prod_vin txt11"><span data-bind="attr:{ id: GetVinLabelId()}"
id="VIN_Label_0">VIN:</span>
<span data-bind="attr:{ id: GetVehicleVinId()}, text:Vin"
id="Vehicle_Vin_0">1FMJK1JTXGEF06926</span>
</div>
<div class="prox_sub22"><a onclick="return srpVehicleNameGAEvent();"
data-bind="attr:{href:VehicleDetailUrl, id: GetVehicleTitleId()}, html:AN.DSF.Data.SearchObjects.GetShortenVehicleName(Year+' '+Make+' '+Model+' '+StyleName)"
href="/new/2017/ford/super-duty-f--250-srw/xl/1FT7W2BT3HEC24765"
id="Vehicle_Title_1">2017 Ford Super Duty F-250 SRW...</a>
</div>
<div class="prod_vin txt11"><span data-bind="attr:{ id: GetVinLabelId()}"
id="VIN_Label_1">VIN:</span>
<span data-bind="attr:{ id: GetVehicleVinId()}, text:Vin"
id="Vehicle_Vin_1">1FT7W2BT3HEC24765</span>
</div>
我只粘貼HTML文件的一小部分以供參考......頁面上有72個(包含0個)這些內容。我正在嘗試遍歷此頁面並獲取頁面上的所有Vehicle_Vin。
這裏是我的代碼
soup = BeautifulSoup(f,"html.parser")
stock = soup.find_all("div", attrs={"class" : "prod_vin txt11"})
for j in range(0,72):
vinlist = []
for subvins in stock:
vins = subvins.find_all("span", attrs={"id" : "Vehicle_Vin_{}".format(j)})
for vin in vins:
vinlist.append(vin.string)
print(j,vinlist)
所以,問題是,我不斷收到一個空列表時,這個貫穿我似乎無法找出原因。
任何意見是非常感謝。
你可能會看到這個帖子http://stackoverflow.com/questions/6396655/parsing-html-using-beautifulsoup-in-python –
我想有一個缺少縮進行 - >對於vin vin: vinlist.append(vin.string)。這個for循環應該放在外循環中。 –
謝謝你的收穫。你是對的,我應該把它放在循環外部。但是,爲什麼每個新的VIN都不添加到我創建的列表中?最後,我應該有一個列表,其中有72個項目,但我最終只有一個列表中有1項? – enderwigg