首页 > 解决方案 > 即使没有,打印也不返回

问题描述

嘿,我正在尝试抓取一个网站进行定价。[]即使在搜索页面上它的价值为 79.99 美元,它也会返回。我只希望它从搜索页面中提取第一个价格。我似乎无法弄清楚我做错了什么。

bburl = "https://www.ebgames.ca/SearchResult/QuickSearch?q=animal+crossing"

def bestbuy():
    proxies = get_proxy()
    result = requests.get(bburl,headers=header,timeout=12,proxies=proxies)
    soup = BeautifulSoup(result.content, 'lxml')

    titles = soup.title
    price = soup.find_all('span',attrs={'class':'megaButton buyTier3 cartAddNoRadio'})

    print(titles)
    print(price)

它返回这个

<title>EB Games | The largest video game retailer in Canada. Play. Trade. Save.  - EBGames.ca </title>
[]

标签: pythonbeautifulsoup

解决方案


该类megaButton buyTier3 cartAddNoRadio位于a标签而不是span. 只获取第一个元素使用.find()而不是find_all().

import requests
from bs4 import BeautifulSoup

bburl = "https://www.ebgames.ca/SearchResult/QuickSearch?q=animal+crossing"

def bestbuy():
    result = requests.get(bburl)
    soup = BeautifulSoup(result.content, 'lxml')

    price = soup.find('a',attrs={'class': 'megaButton buyTier3 cartAddNoRadio'})

    print(price.get_text(strip=True, separator=' '))


bestbuy()

输出:

New $79.99

推荐阅读