BS4 Beautiful Soup从find_all提取文本

时间:2019-07-02 22:03:16

标签: beautifulsoup

我正在抓取一个网站,并想创建一个价格清单。

prices = soup.find_all("li", class_="price")

但是,这返回:

 <li class="price">€13.99</li>, 
 <li class="price">€12.99</li>, 
.....

如何仅提取价格?我尝试过

prices = soup.find_all("li", class_="price", text=True)

但是它不起作用。

我知道我可以手动浏览列表并提取文本,但这并不理想。

2 个答案:

答案 0 :(得分:1)

假设内容不是动态添加的,看起来不是,那么我将使用.text从使用select返回的元素中提取

prices = [item.text for item in soup.select('li.price')]

答案 1 :(得分:0)

find_all()返回元素列表。您需要对其进行迭代以获取每个element,然后获取元素的text

prices = soup.find_all("li", class_="price", text=True)
for price in prices:
  print(price.text)