如何从python中的文本列表中的文本中间删除\ n

时间:2016-02-21 21:21:07

标签: python python-2.7 beautifulsoup

我在网页上抓取了一个标题列表,这些标题在源代码中采用了以下形式:

<h2 class="story-heading"><a href="somelink.html">Crash Highlights
Indonesia’s Poor Air
Safety Record</a><span class="product-label theme-nyt-now "><span class="visually-hidden">NYT Now</span><i class="icon dot-logo-icon"></i></span></h2>

我只想要文字。

我得到以下列表:

[u'Crash Highlights\nIndonesia\u2019s Poor Air\nSafety RecordNYT Now', u'Palestine Joins\nHague Criminal\nCourt, Risking\nU.S. SanctionsNYT Now', ... ]

每个字符串都有"\n"字符,以"NYT Now"结尾如何删除NYT?我的理解是get_text()只应该检索<a>标签

中的功能

这是我的代码:

url="<website link>"
html = urllib2.urlopen(url)
soup = BeautifulSoup(html,'lxml')

headings_list=[]

for heading in soup.find_all(class_="story-heading"):
    for text in heading.find_all('a'):
        headings_list.append(heading.get_text().strip())

print headings_list

2 个答案:

答案 0 :(得分:2)

我认为这应该符合您的要求:

heading.get_text().replace('\n',' ').replace('NYT Now', '')

答案 1 :(得分:1)

使用

headings_list.append(heading.get_text().strip()[:-7])

获取没有最后7个字符的标题。