使用BeautifulSoup从Class中查找ID

时间:2012-05-08 17:15:39

标签: python beautifulsoup

我正在尝试使用BeautifulSoup返回要使用Selenium单击的单元格的ID。每次加载页面时ID都会更改,所以我试图从以下类中找到特定的单元格:

<table cellspacing="0" role="presentation" id="x-auto-667" class=" x-btn x-component x-btn-text-icon" style="margin-right: 0px;">

我尝试了很多变化: soup.find(class ='x-btn x-component x-btn-text-icon')['id']

没有成功。我很感激任何帮助。

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

dict(soup.find('table', {'class' : ' x-btn x-component x-btn-text-icon'}).attrs)['id']

class是关键字,因此无法撰写class = ...。所以有字典。您还需要将属性集合强制转换为字典,以使用id作为键。

答案 1 :(得分:0)

根据BeautifulSoup documentation,有一个搜索CSS类的快捷方式:为attrs参数传递一个字符串。当然,当你这样做时,你必须给它一个名字,否则字符串会被误解为name。简而言之,您可以使用soup.find('', 'x-btn x-component x-btn-text-icon')找到您的表格,并使用以下内容获取id

soup.find('', 'x-btn x-component x-btn-text-icon')['id']