使用 beautifulsoup 从结果 parces 中删除特定内容
Removing particular content from result parces using beautifulsoup
def get_description(link):
redditFile = urllib2.urlopen(link)
redditHtml = redditFile.read()
redditFile.close()
soup = BeautifulSoup(redditHtml)
desc = soup.find('div', attrs={'class': 'op_gd14 FL'}).text
return desc
这是给我文本的代码 html
<div class="op_gd14 FL">
<p><span class="bigT">P</span>restige Estates Projects Ltd has informed BSE that the 18th Annual General Meeting (AGM) of the Company will be held on September 30, 2015.Source : BSE<br><br>
<a href="../../company-notices/nestleindia/notices/PEP02">Read all announcements in Prestige Estate</a> </p><p> </p>
</div>
这个结果对我来说没问题,我只是想排除
的内容
<a href="../../company-notices/nestleindia/notices/PEP02">Read all announcements in Prestige Estate</a>
来自结果,即我的脚本中的 desc
,如果它存在,如果它不存在则忽略。我该怎么做?
只需对最后一行进行一些更改并添加 re 模块
...
return re.sub(r'<a(.*)</a>','',desc)
输出:
'<div class="op_gd14 FL">\n <p><span class="bigT">P</span>restige Estates Projects Ltd has informed BSE that the 18th Annual General Meeting (AGM) of the Company will be held on September 30, 2015.Source : BSE<br><br> \n </p><p>
您可以使用 extract()
从 find()
结果中删除不必要的标签:
descItem = soup.find('div', attrs={'class': 'op_gd14 FL'}) # get the DIV
[s.extract() for s in descItem('a')] # remove <a> tags
return descItem.get_text() # return the text
def get_description(link):
redditFile = urllib2.urlopen(link)
redditHtml = redditFile.read()
redditFile.close()
soup = BeautifulSoup(redditHtml)
desc = soup.find('div', attrs={'class': 'op_gd14 FL'}).text
return desc
这是给我文本的代码 html
<div class="op_gd14 FL">
<p><span class="bigT">P</span>restige Estates Projects Ltd has informed BSE that the 18th Annual General Meeting (AGM) of the Company will be held on September 30, 2015.Source : BSE<br><br>
<a href="../../company-notices/nestleindia/notices/PEP02">Read all announcements in Prestige Estate</a> </p><p> </p>
</div>
这个结果对我来说没问题,我只是想排除
的内容<a href="../../company-notices/nestleindia/notices/PEP02">Read all announcements in Prestige Estate</a>
来自结果,即我的脚本中的 desc
,如果它存在,如果它不存在则忽略。我该怎么做?
只需对最后一行进行一些更改并添加 re 模块
...
return re.sub(r'<a(.*)</a>','',desc)
输出:
'<div class="op_gd14 FL">\n <p><span class="bigT">P</span>restige Estates Projects Ltd has informed BSE that the 18th Annual General Meeting (AGM) of the Company will be held on September 30, 2015.Source : BSE<br><br> \n </p><p>
您可以使用 extract()
从 find()
结果中删除不必要的标签:
descItem = soup.find('div', attrs={'class': 'op_gd14 FL'}) # get the DIV
[s.extract() for s in descItem('a')] # remove <a> tags
return descItem.get_text() # return the text