使用BS4抓取后如何清理HTML标签

时间:2018-07-03 22:41:45

标签: python web-scraping beautifulsoup

在Python中构建一个超级基本脚本,以从Etsy获取一些定价数据。我知道代码很丑陋(任何更好的实践技巧都将不胜感激),但是它确实可以满足我的需求。

我唯一的问题是:是否有一种简单,干净的方法来仅获取 $ 305.00 + 而无需关联HTML标记?也许我需要一些正则表达式-但我觉得需要一种更清洁的方法,或者使用更好的软件包或其他东西。。

from urllib.request import urlopen
from bs4 import BeautifulSoup

weblink = 'https://www.etsy.com/listing/567269694/saw-blade-gyuto-japanese-style-chef?ga_order=most_relevant&ga_search_type=all&ga_view_type=gallery&ga_search_query=chef%20knife&ref=sr_gallery-1-17'

def grabData(url):
    res = urlopen(url)
    soup = BeautifulSoup(res, "html.parser")

    price = soup.find('span', attrs={'id': 'listing-price'})
    print(price)

if __name__ == '__main__':
    grabData(weblink)

输出:

<span class="vertical-align-middle " id="listing-price">
                        $305.00+

                <meta content="USD" itemprop="currency"/>
<meta content="305.00" itemprop="price"/>
<meta content="in_stock" itemprop="availability"/>
</span>

没关系,我已经解决了。您所要做的就是在末尾添加.text

0 个答案:

没有答案