一、对新闻正文内容的抓取
在对新闻网页的新闻文本进行提取时,通常文本会分为多个段落,也就是会有多个<p>
标签,例如对于下面的一个网页,新闻正文存放在id为artibody的div标签内,每一段分成一个p标签内。
要获取正文的全部内容的代码如下:
import requests
from bs4 import BeautifulSoup
res =requests.get('http://news.sina.com.cn/gov/2017-11-02/doc-ifynmzrs6000226.shtml')
res.encoding='utf-8'
soup=BeautifulSoup(res.text, 'html.parser')
title=soup.select('#artibody')[0].text
print(title)
得到的结果是这样的:
几乎是和原网页显示的一样了,段落分明且不带标签。
还有下面这种方法:
通过先定义一个空的对象article,再把每一个段落的内容逐个加进去进行连接。第三句的append方法将P逐个添加进article里面;添加strip()方法可以去掉段落前后的空格。最后一句的join方法将每个段落之间用你所指定的字符进行连接,”.join”可以是空格’ ‘,换行’\n’等,但jupyter中换行显示不出来。其实不用join也是可以的。
article=[]
for p in soup.select('#artibody p'):#若不想要最后一段可以在最后加上[:-1]
article.append(p.text.strip())
&#