我是網路抓取的新手,我遇到了一個問題,我想獲取“排名”和“專案編號”。從這個網址。我的最終目標是將此資訊保存在 csv 中并能夠繪制資料。我現在遇到的問題是這兩個值被放置在具有相同類名“item_stat”的兩個不同的 div 中。
<div class="item_stats">
<div class="item_stat">
rank
<span>
1
</span>
</div>
<div class="item_stat">
item no.
<span>
#3251
</span>
</div>
</div>
我正在使用以下代碼來獲取“排名”值。
page = requests.get(URL)
soup = bs(page.content, 'html.parser')
soup2 = bs(soup.prettify(), "html.parser")
lists = soup2.find('div', class_="featured_item")
stats = lists.find('div', class_="item_stats")
stats_val = lists.find('div', class_="item_stat")
rank = stats_val.text.replace('<', '')
rank_val = re.findall(r'\d ', rank)
輸出:
['1']
我想我想要這個值作為浮點數,我也不知道如何找到“專案編號”。價值。使用 get_text() 和 .text.replace() 給了我其他抓取專案沒有的錯誤。我感謝任何建議,謝謝。
uj5u.com熱心網友回復:
作為一種方法,您可以選擇您的所有<span>sitem_stats并提取其文本:
rank = float(soup.select('.item_stats span')[0].text)
number = soup.select('.item_stats span')[1].text.strip()
例子
html = '''
<div >
<div >
rank
<span>
1
</span>
</div>
<div >
item no.
<span>
#3251
</span>
</div>
</div>
'''
soup = BeautifulSoup(html)
rank = float(soup.select('.item_stats span')[0].text)
number = soup.select('.item_stats span')[1].text.strip()
print(rank)
print(number)
輸出
1.0
#3251
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/462905.html
上一篇:WPF命令
