如何区分具有相同类名的两个元素

时间:2018-12-28 13:10:56

标签: python web web-scraping beautifulsoup css-selectors

我尝试在代码中定位a.nostyle,但是当我这样做时,由于它们共享相同的标签,因此有时会抓取上面的电子邮件。我似乎找不到任何唯一的电话号码标签。您将如何去做?

请参阅下面的图像。任何帮助将不胜感激。

enter image description here

2 个答案:

答案 0 :(得分:2)

您可以尝试

a.nostyle:not([itemprop])

更新

BeautifulSoup似乎不支持:not()语法,因此您可以尝试解决方法

link = [link for link in soup.select('a.nostyle') if 'itemprop' not in link.attrs][0]

选择具有必需的class属性的链接,该链接不包含itemprop属性(作为email链接)

答案 1 :(得分:1)

您可以创建一个包含所有“ a”标签的列表。然后,您可以使用索引号来定位所需的标签

示例

allATagContainer = soup.findAll("a")

然后,您可以使用allATagContainer [1]定位第二个标签。