【问题标题】:BS4 Beautiful Soup extract text from find_allBS4 Beautiful Soup 从 find_all 中提取文本
【发布时间】:2019-07-02 22:03:16
【问题描述】:

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

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)

但它不起作用。

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

【问题讨论】:

    标签: beautifulsoup


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2021-04-07
        • 1970-01-01
        • 2021-04-20
        • 2021-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-15
        相关资源
        最近更新 更多