Создание супер базового скрипта на Python для получения данных о ценах от Etsy. Я знаю, что код некрасив (любые полезные советы приветствуются), но он делает именно то, что мне нужно.
Мой единственный вопрос: есть ли простой, чистый способ получить только $ 305,00 + без связанных тегов HTML? Может быть, мне нужно некоторое регулярное выражение - но я чувствую, что должен быть более чистый способ, или лучший пакет для использования или что-то в этом роде ... Я также видел раньше 'find_element_by_class', но я думаю, что он использует Selenium, и он намного медленнее.
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
в конец.