为了账号安全,请及时绑定邮箱和手机立即绑定

如何在使用 python 和 Beautiful Soup 抓取时访问站点中的兄弟元素

如何在使用 python 和 Beautiful Soup 抓取时访问站点中的兄弟元素

翻翻过去那场雪 2021-11-16 10:30:52
我正在尝试抓取本网站的“listing-key-specs”:https://www.autotrader.co.uk/car-search?radius=30&postcode=ss156ee&onesearchad=Used&make=Renault&model=zoe&page=1但我只对里程规格感兴趣,而不对 bhp 或任何其他规格感兴趣。如果我输入specs=article.find('ul',class_="listing-key-specs")print(specs.text)我可能会得到6条信息:2015 (65 reg)Hatchback13,033 miles88bhpAutomaticElectric**如果我输入print(specs.li.text)我只会得到第一个规格,即2015 (65 reg)如何选择特定的规格?让我们说“英里”规格?
查看完整描述

2 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

您可以提取第一个孩子 li


from bs4 import BeautifulSoup as bs

import requests

res= requests.get('https://www.autotrader.co.uk/car-search?radius=30&postcode=ss156ee&onesearchad=Used&make=Renault&model=zoe&page=1')

soup = bs(res.content, 'lxml')

details = [item.text for item in soup.select('.listing-key-specs li:first-child')]

print(details)

效率较低的是


.listing-key-specs li:nth-of-type(1)

或者


.listing-key-specs :nth-child(1)

或者


.listing-key-specs li:first-of-type

我正在使用最新的 BeautifulSoup 4.7.1


查看完整回答
反对 回复 2021-11-16
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

或者干脆:

print(specs('li')[2].text)

输出:

15,285 miles


查看完整回答
反对 回复 2021-11-16
  • 2 回答
  • 0 关注
  • 229 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号