1.作业代码
importrequestsfrom bs4 importBeautifulSoupfrom datetime importdatetime#========================================================================#1.用requests库和BeautifulSoup库,爬取校园新闻首页新闻的标题、链接、正文。#========================================================================
url='http://news.gzcc.cn/html/xiaoyuanxinwen/'res=requests.get(url)
res.encoding='utf-8'soup=BeautifulSoup(res.text,'html.parser')for news in soup.select('li'):if len(news.select('.news-list-title'))>0:
pert=news.select('.news-list-title')[0].text #pertitle 每则新闻题目
perdt=news.select('.news-list-info')[0].contents[0].text #perDetail 每则新闻详细内容
perhref=news.select('a')[0].attrs['href'] #perHref 每则新闻源链接
#————————————爬取子页面内容——————————————————————————
perdetail=requests.get(perhref)
perdetail.encoding='utf-8'soupDetail=BeautifulSoup(perdetail.text,'html.parser')
textContent=soupDetail.select('#content')[0].text#————————————输出内容——————————————
print('题目:',pert)print('发布时间:',perdt)print('源页面:',perhref)print('正文内容:',textContent)break;#=============================================================#2.分析字符串,获取每篇新闻的发布时间,作者,来源,摄影等信息。#=============================================================
info=soupDetail.select('.show-info')[0].textcatagory=['发布时间:','审核:','作者:','摄影:','来源:','点击:']
i=0while(i
valid=info.find(catagory[i])if(valid>=0):
s=info[info.find(catagory[i]):].split()[0].lstrip(catagory[i])#=============================================================#3.将其中的发布时间由str转换成datetime类型。#=============================================================
if(valid>0 and i==0):
timeC=datetime.strptime(s,'%Y-%m-%d %H:%M:%S')print(catagory[i]+s)
i=i+1
2.结果截图
中间省略若干新闻报道内容...暂爬取新闻第一页作示例。若源代码第31行的 break 注释掉,能够爬取更多的新闻页面。