为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Beautiful Soup提取HTML标记内的特定文本?

如何使用Beautiful Soup提取HTML标记内的特定文本?

牛魔王的故事 2021-03-04 14:05:40
我有一个这样的HTML标记:<ul class="clearfix">  "<li><span class="bold-title">Starts:</span> October 2013</li>"</ul>我想提取“ 2013年10月”。我的代码是:start_date = articl.find('ul', class_='clearfix').find('li').text.strip()...摘录为“开始时间:2013年10月”。如何只取日期呢?
查看完整描述

3 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

使用正则表达式:


import re


ss = '''

<ul class="clearfix">

  <li><span class="bold-title">Starts:</span> October 2013</li>"

</ul>


blah blah


<ul class="clearfix">

  <li><<a href="/derives/certificats/"> November 2014     </li>"

</ul>

   '''


regx = re.compile('<ul +class="clearfix">.+?'

                  '<li>.*? *([^<>]+?) *</li>',

                  re.DOTALL)


print regx.findall(ss)


# prints ['October 2013', 'November 2014']


查看完整回答
反对 回复 2021-03-26
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

hold = li.text

for eachTag in li.findAll():

    hold = hold.replace(eachTag.text,'')


查看完整回答
反对 回复 2021-03-26
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

使用.contents,它返回一个列表:


>>> from bs4 import BeautifulSoup as BS

>>> html = (stuff above)

>>> soup = BS(html)

>>> print soup.find('li').contents[1].strip()

October 2013


查看完整回答
反对 回复 2021-03-26
  • 3 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信