【发布时间】:2021-04-05 13:48:58
【问题描述】:
python 和 BeautifulSoup 的新手。
我无法将我的函数应用于此 eBay 已售商品页面上的所有列表商品(li 类)。
每个售出的listing都显示为一个li类。下面是URL。
这是我的代码...
def rookie_card_info(url):
r = requests.get(url)
soup = bs(r.content)
contents = soup.prettify()
rookie_card_list = soup.find_all(class_="srp-results srp-list clearfix")
#How to to apply to all list items
display_image = soup.find(class_="s-item__image-img")
img_src = display_image.get('src')
test = Image(img_src)
display(test)
print(img_src)
display_card = soup.find(class_="s-item__link")
card_title = display_card.find("h3")
get_card_title = card_title.text
print(get_card_title)
display_sold_price = soup.find(class_="s-item__detail s-item__detail--primary")
card_sold_price = display_sold_price.find("span")
sold_price_text = card_sold_price.find(class_="POSITIVE")
print(sold_price_text.string)
display_sold_date = soup.find(class_="s-item__ended-date s-item__endedDate")
card_sold_date = display_sold_date.string
print(card_sold_date)
rookie_card_info("https://www.ebay.com/sch/i.html?_from=R40&_nkw=2017+patrick+mahomes+psa+10+auto&_sacat=0&LH_TitleDesc=0&LH_Complete=1&LH_Sold=1&_ipg=100")
我编写了以下代码行,试图识别页面上包含已售结果页面上所有 li class 对象的特定类(大约有 65 个结果)。
rookie_card_list = soup.find_all(class_="srp-results srp-list clearfix")
当我从这行代码打印 html 时。它包含我需要为我的数据解析的所有正确 html。
我要解析的数据是图片网址、标题、销售日期和销售价格。
我得到了正确的数据,如下所示...
https://i.ebayimg.com/thumbs/images/g/2BwAAOSwETVfzAFT/s-l225.jpg
2017 Armed & Dangerous Patrick Mahomes Auto MINT Condition PSA 10? Rookie Signed
$2,500.00
Dec-27 12:46
但是,我只从页面上的第一个“li 类”列表中获取数据。而不是所有 65 个结果的数据。
问题:
如何获取所有 65 个结果的数据。我需要一个可以应用于不同 URL 的“即插即用”解决方案。
【问题讨论】:
标签: python html python-3.x web-scraping beautifulsoup