我在网页上抓取了一个标题列表,这些标题在源代码中采用了以下形式:
<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
答案 0 :(得分:2)
我认为这应该符合您的要求:
heading.get_text().replace('\n',' ').replace('NYT Now', '')
答案 1 :(得分:1)
使用
headings_list.append(heading.get_text().strip()[:-7])
获取没有最后7个字符的标题。