在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
。