我試圖從每個 div 串列中獲取每個類名及其對應的值。
從這個頁面:https ://www.dotproperty.id/en/properties-for-sale/riau-islands/batam?page=1
這是類名和值的 html:
<ul class="list-inline">
<li><i class="icon icon-bedroom"></i> <span>3</span></li>
<li><i class="icon icon-dp-icon-24"></i> <span>2</span></li>
<li><i class="icon icon-dp-icon-26"></i> <span>100 m<sup>2</sup></span></li>
</ul>
到目前為止,我得到的最接近的是它使用getall(). 但是,它給了我整個頁面。
for e in response.css('div.description-block'):
for item in e.xpath('.//ul[@]'):
print(item.xpath('.//li/i/@class | .//li/span/text()').getall())
輸出:
['icon icon-bedroom', '3', 'icon icon-dp-icon-24', '2', 'icon icon-dp-icon-26', '100 m']
['icon icon-bedroom', '2', 'icon icon-dp-icon-24', '1']
['icon icon-bedroom', '6', 'icon icon-dp-icon-24', '5', 'icon icon-dp-icon-26', '198 m']
['icon icon-bedroom', '4', 'icon icon-dp-icon-24', '5', 'icon icon-dp-icon-26', '450 m']
['icon icon-dp-icon-26', '336 m', ' ']
Tryingget()給出每個 div 的每個第一類名稱:
icon icon-bedroom
icon icon-bedroom
icon icon-bedroom
icon icon-bedroom
icon icon-dp-icon-26
(and so on ...)
我希望每個回圈的輸出看起來像這樣。
['icon icon-bedroom', '3', 'icon icon-dp-icon-24', '2', 'icon icon-dp-icon-26', '100 m']
uj5u.com熱心網友回復:
好的,所以我解決了我的問題。基本上,我只需要在圖示容器內進行迭代并通過名稱區分每個圖示。
在回圈回圈內回圈。:)
for a in accommodation:
class_name = a.xpath('.//i/@class').getall()
value = a.xpath('li/span/text()').getall()
for name,val in zip(class_name,value):
if 'bedroom' in name:
bedrooms = val
else:
pass
if 'icon-24' in name:
bathrooms = val
else:
pass
if 'icon-26' in name:
land = val
else:
pass
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/463833.html
