Python BeautifulSoup4 get_text()或正则表达式

时间:2015-05-27 01:06:51

标签: python regex beautifulsoup

我正在使用Python 2.7.5和BeautifulSoup4。 我需要从html标签中剪切文本。 我在命令后输出<a class="username offline popupctrl" href="member.php?20938-NarutoO" title="NarutoO je offline"><strong><font color="#5566CC">NarutoO</font></strong></a>

  print post_owner[0]

我只需要昵称:NarutoO 并且不想使用get_text()

我的代码:

post_owner = soup.findAll(attrs={'class':'username offline popupctrl'})
for row1 in post_owner:
    text = ''.join(row1.findAll(text=True))
    data1 = text.strip()
    text_file.write("USER NAME\n")
    member_count = member_count + 1
    data1 = data1.encode('utf-8')
    text_file.write(str(data1) + '\n')

我在其他帖子中使用了一些解决方案。如果我理解正确,findAll会给我一份所有匹配的列表。我的代码会连续打印所有匹配项。我只需要post_owner列表中的访问元素,并使用它们而不使用html标记。一些例子如:

  print post_owner[0]
  print post_owner[4]
  print post_owner[2]
  .
  .
  .
抱歉不好解释,我真的很累:o

1 个答案:

答案 0 :(得分:0)

使用soup.selectget()

[i.get('title') for i in soup.select('.username')]