亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

總結從 BeautifulSoup 導入的所有整數

總結從 BeautifulSoup 導入的所有整數

米琪卡哇伊 2021-09-11 13:35:11
我正在嘗試使用 BeautifulSoup 用 python 進行網絡抓取。我一直在嘗試添加所有導入的整數,但似乎找不到辦法。這是代碼:from bs4 import BeautifulSoupimport requestssource = requests.get('https://www.ebay.com/sch/i.html?_odkw=iphone+xr&_osacat=0&_from=R40&_trksid=m570.l1313&_nkw=iphone+xr+128+gb&_sacat=0').textsoup =BeautifulSoup(source, 'lxml')for post in soup.find_all("li",{"class" : "s-item"}):   price = post.find_all("span", {"class" : "s-item__price"})[0].text   price2 = price.strip( '$' )   price3 = price2.replace(",", "")   price4 =price3[0:5]   price5 = float(price4)   price6 = round(price5)   print(price6)它打印:1130122611301100870171433108965294472857574061073088276053066095875058873073064575475075036190933275175074655077383188875092293992748568012508881117650775600基本上我想要做的是將所有這些加起來為一個數字。
查看完整描述

2 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

首先,您可以將循環中的所有步驟重寫為一個單獨的函數:


def get_price(post):

       price = post.find_all("span", {"class" : "s-item__price"})[0].text

       price2 = price.strip( '$' )

       price3 = price2.replace(",", "")

       price4 =price3[0:5]

       price5 = float(price4)

       price6 = round(price5)

       return price6

現在您擁有的循環可以重寫為


for post in soup.find_all("li",{"class" : "s-item"}):

    print(get_price(post))

你問的重點是什么?好吧,Python 的內置sum函數有一個接口,可以讓你傳入這樣的生成器:


sum(get_price(post) for post in soup.find_all("li",{"class" : "s-item"}))

或等效地:


sum(map(get_price, soup.find_all("li",{"class" : "s-item"})))

您可以將函數重寫為單行函數:


def get_price(post):

       return round(float(post.find_all("span", {"class" : "s-item__price"})[0].text.strip('$').replace(',', '')[:5]))

這不會使您的代碼更清晰,但您可以使用等效表達式避免在此處編寫單獨的函數:


sum(round(float(post.find_all("span", {"class" : "s-item__price"})[0].text.strip('$').replace(',', '')[:5])) for post in soup.find_all("li",{"class" : "s-item"}))



查看完整回答
反對 回復 2021-09-11
  • 2 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號