我知道Web爬行需要一个名称标签。 (例如:class ='abcd') 但是现在我要拥有的这个名字已经没有了。
我想从图像值中提取(span)1(span)中的 1 。 怎么做到的?
总是感谢 stackoverflow的用户。
答案 0 :(得分:1)
对于bs4 4.7.1,您可以使用:has伪选择器来指定具有类.point-scale的同级跨度的跨度
soup.select_one('span:has(~ .point-scale)').text
那是一个一般的兄弟姐妹。您还可以对相邻的兄弟姐妹更具体
soup.select_one('span:has(+ .point-scale)').text
使用select
并列出对多个匹配项的理解:
ratings = [item.text for item in soup.select('span:has(~ .point-scale)')]
组合器(Mozilla开发人员页面的引用)
相邻的同级组合器(+)分隔两个选择器和 仅当第二个元素紧跟在第一个元素之后才匹配 元素,并且都是相同父元素的子元素。
通用同级组合器(〜)分隔两个选择器并进行匹配 第二个元素仅在第一个元素之后(尽管不是 且必须是立即),并且两者都是同一个父母的孩子 元素。