使用带有多个Span属性的Beautifulsoup解析HTML

2024-09-30 16:37:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图提取'新/旧'的元素从以下网页使用美丽的汤。我已经设法从中提取了很多,其中span只有一个元素(请参阅提取price的代码)。但是,新的/旧的split有几个span属性,我在提取时遇到了问题。网站示例如下:

http://www.bidorbuy.co.za/item/287281843/BEDS_DOUBLE_BED_POCKET_SPRING_BASE_AND_MATTRESS.html

我离得太近了,但就是做不完。我的剧本是:

 base_url = 'http://www.bidorbuy.co.za/item/287281843/BEDS_DOUBLE_BED_POCKET_SPRING_BASE_AND_MATTRESS.html'
 source = urllib.request.urlopen(base_url).read()
 soup = bs.BeautifulSoup(source,'lxml')

 soup.find("span", class_ = "condition").find("span", class_ = "value-title")

最后一行是最接近提取新/旧分割的行。但是我得到的对象,或者HTML的编写方式,似乎与我提取的其他元素的格式不同

我可以很好地提取price和title(参见下面的代码),但是我可以简单地用div/span/class标签链接它们

 soup.find("div", class_ = "big_price").find("span", class_="bigPriceText2").text

新的/旧的格式似乎有点不同,这让我很困惑。我试过几种不同的方法,但似乎都不管用

任何帮助都将不胜感激


Tags: 代码http元素wwwfinditempriceclass
1条回答
网友
1楼 · 发布于 2024-09-30 16:37:50

我刚想出来。我需要从包含所有属性的Span中提取'title'属性。所以a=soup.find(“span”,class=“condition”).find(“span”,class=“value title”),a.attrs['title']

相关问题 更多 >