首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >遍历包含文本的列表以消除某些值

遍历包含文本的列表以消除某些值
EN

Stack Overflow用户
提问于 2017-11-11 02:46:52
回答 1查看 59关注 0票数 0

我有一个问题,清理一些数据,我得到的刮谷歌新闻标题。

我有兴趣做一个干净的数据,从我从我从谷歌新闻标题,从美丽的汤库从一个名单上得到的几列。

我的名单是这样的,我把它叫做“日期”:

代码语言:javascript
复制
[<div class="slp"><span class="f">ESPN - 13 hours ago</span></div>, <div class="slp"><span class="f">ABS-CBN News - 13 hours ago</span></div>, <div class="slp"><span class="f">New York Times - 14 hours ago</span></div>, <div class="slp"><span class="f">MinnPost - 1 day ago</span></div>, <div class="slp"><span class="f">New York Times - 2 days ago</span></div>, <div class="slp"><span class="f">NME.com - 1 day ago</span></div>, <div class="slp"><span class="f">Wichita Eagle - 1 day ago</span></div>, <div class="slp"><span class="f">Jalopnik - 1 day ago</span></div>]

有什么方法可以迭代这个列表并去掉div标记吗?我只想为清单上的每一个价值写上报纸日期。

我试着用漂亮汤的特性来做这件事,但没有取得多大的成功,我还试着把我的清单变成熊猫的数据,并使用df = df.replace('',“)之类的东西。

写循环之类的,但它们不起作用。

感谢您的阅读。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-11 02:56:32

尝试使用BeautifulSoup查找元素span,然后获得text,如下所示:

代码语言:javascript
复制
import bs4
date_lst = ["""<div class="slp"><span class="f">ESPN - 13 hours ago</span></div>""", 
            """<div class="slp"><span class="f">ABS-CBN News - 13 hours ago</span></div>""",
            """<div class="slp"><span class="f">New York Times - 14 hours ago</span></div>""", 
            """<div class="slp"><span class="f">MinnPost - 1 day ago</span></div>""", 
            """<div class="slp"><span class="f">New York Times - 2 days ago</span></div>""",
            """<div class="slp"><span class="f">NME.com - 1 day ago</span></div>""",
            """<div class="slp"><span class="f">Wichita Eagle - 1 day ago</span></div>""", 
            """<div class="slp"><span class="f">Jalopnik - 1 day ago</span></div>"""]
date_result  = []
for d in date_lst:
    soup = bs4.BeautifulSoup(d, "html.parser")
    date_result.append(soup.find('span').text)
print(date_result)

更新:基于您的更新,日期包含<div class="slp">元素,您可以直接循环查找span并获取text

代码语言:javascript
复制
date_result  = []
for d in dates:
    date_result.append(d.find('span').text)

date_result将是:

代码语言:javascript
复制
[u'ESPN - 13 hours ago',
 u'ABS-CBN News - 13 hours ago',
 u'New York Times - 14 hours ago',
 u'MinnPost - 1 day ago',
 u'New York Times - 2 days ago',
 u'NME.com - 1 day ago',
 u'Wichita Eagle - 1 day ago',
 u'Jalopnik - 1 day ago']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47233855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档