簡體   English   中英

使用Beautiful Soup檢索數據

[英]Retrieving data using Beautiful Soup

因此,我一直在嘗試使用BeautifulSoup檢索一些數據,但遇到了麻煩。

<tr data-name="A Color Similar to Slate">
                <th class="unique"><a href="/item/5052/6/223d382afee2ac6857d3298b800652e0" class="item-link"><span style='color: #7D6D00'>A Color Similar to Slate</span></a></th>
                <td class=unique>0/10</td>
                <td class="unique" data-conversion="14 ref">35,000</td>
                <td class="unique" data-conversion="13.02 ref">32,550</td>
                <td class="unique" data-conversion="13.51 ref">33,775</td>
                <td class="unique" style="text-align: center;"><a class="item-link-backpack" href="http://backpack.tf/stats/Unique/A+Color+Similar+to+Slate/tradable/craftable"><img src="/img/bptf-icon.png" alt="View on Backpack.tf"/></a></td>
            </tr>

我希望腳本執行的操作是接受輸入(在這種情況下為“類似於板岩的顏色”字符串),並使其返回下面的數據(0 / 10、14 ref等),以便我可以對其進行比較到另一組數據。 我該如何運作?

similar_color = soup.find('tr', {'data-name': 'A Color Similar to Slate'})
for value in similar_color.find_all('td'):
    print(value.text)

應導致:

0/10
35,000

依此類推。 但是,似乎您想有時獲取文本值,而有時則要獲取data-conversion值。 為此,您只需將print(value.text)行替換為:

print(value.attrs.get('data-conversion'))

如果您將其用於其他HTML樣式文件:

from bs4 import BeautifulSoup
html= """<tr data-name="A Color Similar to Slate">
                <th class="unique"><a href="/item/5052/6/223d382afee2ac6857d3298b800652e0" class="item-link"><span style='color: #7D6D00'>A Color Similar to Slate</span></a></th>
                <td class=unique>0/10</td>
                <td class="unique" data-conversion="14 ref">35,000</td>
                <td class="unique" data-conversion="13.02 ref">32,550</td>
                <td class="unique" data-conversion="13.51 ref">33,775</td>
                <td class="unique" style="text-align: center;"><a class="item-link-backpack" href="http://backpack.tf/stats/Unique/A+Color+Similar+to+Slate/tradable/craftable"><img src="/img/bptf-icon.png" alt="View on Backpack.tf"/></a></td>
            </tr>"""

soup = BeautifulSoup(html)
texts = [i.get_text() for i in soup.find_all() if i.get_text()]

print(texts[texts.index('A Color Similar to Slate'):])

這將檢查所有標簽,而不僅僅是td 輸出為['A Color Similar to Slate', 'A Color Similar to Slate', 'A Color Similar to Slate', '0/10', '35,000', '32,550', '33,775']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM