【分析】查看网页源代码,文章标题由h3、h1、h2、h4标题标签组成,文章内容由p标签组成,嵌套在< DIV id=ozoom style=“zoom:100%;”>下。因此,在获取文本内容时,通过h3、h1、h2、h4标题标签获得文章标题,通过find()函数获得属性id=ozoom的DIV标签下的内容,在DIV标签的内容下通过findall()函数获得所有p标签内容获得需要的文本内容。
【代码如下】
from bs4 import BeautifulSoup #引入beautifulsoup库import requests #引入requests库defget_html(url):try:
r=requests.get(url)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
r="fail"return r
if __name__=="__main__":#程序的开始
url='http://paper.people.com.cn/rmrb/html/2020-03/25/nw.D110000renmrb_20200325_8-01.htm'
html=get_html(url)
soup=BeautifulSoup(html,'html.parser')
title=soup.h3.text+soup.h1.text+soup.h2.text+soup.h4.text
#if soup.h4:# title=title+soup.h4.text
plist=soup.find('div',attrs={'id':'ozoom'}).find_all('p')
content=''for p in plist:
content+=p.text+'\n'
f1=open('d:\\books\\%s.txt'%(title),'w',encoding='utf-8')
f1.write(content)#将content的内容写入文件
f1.close()#关闭文件