Python - BeautifulSoup - 如何进行在线数据解析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python - BeautifulSoup - 如何进行在线数据解析相关的知识,希望对你有一定的参考价值。

我正在尝试解析website,我可以获取品牌标签和类别标签,但我似乎无法解析价格标签。此外,一些鞋子正在出售,HTML代码似乎有所不同。

关于如何改进解析代码的任何想法?

这是我到目前为止所拥有的。

url="https://www.sportsexperts.ca/fr-CA/femmes/chaussures?pagesize=451"

contenu = requests.get(url)
page = BeautifulSoup(contenu.text,"html.parser")

for urlchaussure in urldeschaussures:
chaussure =[]
try:
    url2 = urlchaussure.a["href"]
    url2 = "https://www.sportsexperts.ca" + url2

    contenu2 = requests.get(url2)
    page2 = BeautifulSoup(contenu2.text,"html.parser")

    prix = page2.find(class_ ="price").find_next("span").text
    print(prix)

except:
    print("rien ici")

here's the link to the website

答案

所有价格(折扣后的价格或没有销售的价格)都位于<div class="product-tile-price">标签内。所以,你的工作是首先找到这些标签,并使用.span.text来获得价格。

使用list comprehension

r = requests.get('https://www.sportsexperts.ca/fr-CA/femmes/chaussures')
soup = BeautifulSoup(r.text, 'lxml')

prices = [x.span.text for x in soup.find_all('div', class_='product-tile-price')]
print(prices)

输出:

['84,99 $', '67,49 $', '59,49 $', '48,99 $', '164,99 $', '77,99 $', '129,99 $', '94,99 $', '49,99 $', '49,99 $', '119,99 $', '89,99 $', '89,99 $', '74,99 $', '99,99 $', '149,99 $', '99,99 $', '159,99 $', '159,99 $', '99,99 $', '119,99 $', '139,99 $', '125,99 $', '84,99 $']

以上是关于Python - BeautifulSoup - 如何进行在线数据解析的主要内容,如果未能解决你的问题,请参考以下文章

python学习(25) BeautifulSoup介绍和实战

python爬虫beautifulsoup

[Python]BeautifulSoup安装与使用

Python--BeautifulSoup库安装

python--BeautifulSoup

python爬虫之beautifulsoup的使用