作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2941
1.从新闻url获取新闻详情: 字典,anews
主要代码:
1 import requests 2 from bs4 import BeautifulSoup 3 from datetime import datetime 4 import re 5 def click(url): 6 id=re.findall('(\d{1,5})',url)[-1] 7 clickUrl='http://oa.gzcc.cn/api.php?op=count&id={}&modelid=80'.format(id) 8 resClick=requests.get(clickUrl) 9 newsClick=int(resClick.text.split('.html')[-1].lstrip("('").rstrip("');")) 10 return newsClick 11 def newsdt(showinfo): 12 newsDate=showinfo.split()[0].split(":")[1] 13 newsTime=showinfo.split()[1] 14 newsDT=newsDate+' '+newsTime 15 dt=datetime.strptime(newsDT,'%Y-%m-%d %H:%M:%S') 16 return dt 17 def anews(url): 18 newsDetail={} 19 res=requests.get(url) 20 res.encoding='utf-8' 21 soup=BeautifulSoup(res.text,'html.parser') 22 newsDetail['nenewsTitle']=soup.select('.show-title')[0].text 23 showinfo=soup.select('.show-info')[0].text 24 newsDetail['newsDT']=newsdt(showinfo) 25 newsDetail['newsClick']=click(newsUrl) 26 return newsDetail 27 newsUrl='http://news.gzcc.cn/html/2005/xiaoyuanxinwen_0710/4.html' 28 anews(newsUrl) 29 res = requests.get('http://news.gzcc.cn/html/xiaoyuanxinwen/') 30 res.encoding='utf-8' 31 soup = BeautifulSoup(res.text,'html.parser') 32 for news in soup.select('li'): 33 if len(news.select('.news-list-title'))>0: 34 newsUrl=news.select('a')[0]['href'] 35 print(anews(newsUrl))