我面臨一個問題,不知道如何正確解決它。 我想提取價格(所以在第一個例子中是130歐元,在第二個130歐元中)。Python beautifulsoup提取值無標識符
問題在於屬性總是在變化。所以我不能做這樣的事情,因爲我刮數以百計的網站,並和每個站點的「id」屬性的第2個字符可能會有所不同:
tag = soup_expose_html.find('span', attrs={'id' : re.compile(r'(07_content$)')})
即使我會用這樣的事情它不會工作,因爲沒有鏈接到價格,我可能會得到一些其他值:
tag = soup_expose_html.find('span', attrs={'id' : re.compile(r'([0-9]{2}_content$)')})
實例的html代碼:
<span id="07_lbl" class="lbl">Price:</span>
<span id="07_content" class="content">130 €</span>
<span id="08_lbl" class="lbl">Value:</span>
<span id="08_content" class="content">90000 €</span>
<span id="03_lbl" class="lbl">Price:</span>
<span id="03_content" class="content">130 €</span>
<span id="04_lbl" class="lbl">Value:</span>
<span id="04_content" class="content">90000 €</span>
我能想象的唯一的事情,此刻是Ť o用「text ='Price:'」來標識價格標籤,然後獲得.next_sibling
並提取字符串。但我不確定是否有更好的方法來做到這一點。有什麼建議麼? :-)
爲什麼在第二個例子中不是130? – 2014-09-29 07:53:39
我認爲使用beautifulsoup爲數百個網站編寫這樣的通用爬行程序會非常困難。 – WeaselFox 2014-09-29 07:54:53
你想提取僅價格或價格和價值的內容嗎?到目前爲止,所提出的答案都是針對這兩者的。 – 2014-09-29 08:13:17