我们正在废弃Amazon.in网站以检索任何产品的价格。所有产品都具有不同的价值。属于' span'标签,如;
id = 'priceblock_ourprice', id = 'priceblock_saleprice', and id = 'priceblock_dealprice'.
我们的任务是使用Beautiful Soup中的find_all(..)方法检索产品的价格。根据我们的基本知识,我们只能为find_all(..)方法提供一个参数,如下所示:
m = soup1.find_all('span', {'id': 'priceblock_ourprice'})
有没有办法使用OR条件为find_all(..)方法提供多个参数?
以下是具有相同' id'的不同值的链接属性:
感谢您的帮助!
答案 0 :(得分:2)
我还没有对此进行过测试,但我相信你可以将一个函数作为参数传递给find_all()
,所以你可以试试这样的事情:
def check_id(tag):
valid_ids = ['priceblock_ourprice','priceblock_saleprice','priceblock_dealprice']
if tag.has_attr('id'):
return tag['id'] in valid_ids
else:
return False
m = soup1.find_all(check_id)
答案 1 :(得分:1)
您可以将条件添加到find_all参数中,如下所示:
td_tag_list = soup.find_all(
lambda tag:tag.name == "span" and
'id' in tag.attrs and tag.attrs['id'] == 'priceblock_ourprice')