如何进行Python Web爬网(无标签,无div名称,无类名称)

时间:2019-05-28 13:47:52

标签: python web-crawler

我知道Web爬行需要一个名称标签。 (例如:class ='abcd') 但是现在我要拥有的这个名字已经没有了。

enter image description here

我想从图像值中提取(span)1(span)中的 1 。 怎么做到的?

总是感谢 stackoverflow的用户。

1 个答案:

答案 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开发人员页面的引用)

Adjacent sibling combinator:

  

相邻的同级组合器(+)分隔两个选择器和   仅当第二个元素紧跟在第一个元素之后才匹配   元素,并且都是相同父元素的子元素。

General sibling combinator:

  

通用同级组合器(〜)分隔两个选择器并进行匹配   第二个元素仅在第一个元素之后(尽管不是   且必须是立即),并且两者都是同一个父母的孩子   元素。