爬取校园新闻首页的新闻
Posted 阿yuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬取校园新闻首页的新闻相关的知识,希望对你有一定的参考价值。
1. 用requests库和BeautifulSoup库,爬取校园新闻首页新闻的标题、链接、正文。
import requests from bs4 import BeautifulSoup from datetime import datetime newsurl = \'http://news.gzcc.cn/html/xiaoyuanxinwen/\' res = requests.get(newsurl) res.encoding = \'utf-8\' soup = BeautifulSoup(res.text,\'html.parser\') a=soup.select(\'li\') for news in a: if len(news.select(\'.news-list-title\'))>0: # 获取标题 b=news.select(\'.news-list-title\')[0].contents[0] # 获取链接接 c = news.select(\'a\')[0].attrs[\'href\'] # 获取正文 res1 = requests.get(c) res1.encoding = \'utf-8\' soup1 = BeautifulSoup(res1.text, \'html.parser\') d=soup1.select(\'#content\')[0].text
2. 分析字符串,获取每篇新闻的发布时间,作者,来源,摄影等信息。
#发布时间 info = soup1.select(".show-info")[0].text; e = info.lstrip(\'发布时间:\')[:19] #作者 f=info[info.find(\'作者:\'):info.find(\'审核:\')].lstrip(\'作者:\').split()[0] #来源 g = info[info.find(\'来源:\'):info.find(\'点击:\')].lstrip(\'来源:\').split()[0] #摄影 h = info[info.find(\'摄影:\'):].split()[0].lstrip(\'摄影:\')
3. 将其中的发布时间由str转换成datetime类型。
# 获取当前的时间 now_time = datetime.now(); now_time.year # 将字符串转化为时间 print(datetime.strptime(e, "%Y-%m-%d %H:%M:%S")) # 将时间转化为字符串 print(now_time.strftime(\'%Y\\%m\\%d\'))
4. 将完整的代码及运行结果截图发布在作业上。
import requests from bs4 import BeautifulSoup from datetime import datetime newsurl = \'http://news.gzcc.cn/html/xiaoyuanxinwen/\' res = requests.get(newsurl) res.encoding = \'utf-8\' soup = BeautifulSoup(res.text,\'html.parser\') a=soup.select(\'li\') for news in a: if len(news.select(\'.news-list-title\'))>0: # 获取标题 b=news.select(\'.news-list-title\')[0].contents[0] # 获取链接接 c = news.select(\'a\')[0].attrs[\'href\'] # 获取正文 res1 = requests.get(c) res1.encoding = \'utf-8\' soup1 = BeautifulSoup(res1.text, \'html.parser\') d=soup1.select(\'#content\')[0].text # print(b+" "+c+" "+d) #发布时间 info = soup1.select(".show-info")[0].text; e = info.lstrip(\'发布时间:\')[:19] #作者 f=info[info.find(\'作者:\'):info.find(\'审核:\')].lstrip(\'作者:\').split()[0] #来源 g = info[info.find(\'来源:\'):info.find(\'点击:\')].lstrip(\'来源:\').split()[0] #摄影 h = info[info.find(\'摄影:\'):].split()[0].lstrip(\'摄影:\') # 获取当前的时间 now_time = datetime.now(); now_time.year # 将字符串转化为时间 # print(datetime.strptime(e, "%Y-%m-%d %H:%M:%S")) # 将时间转化为字符串 print(b+" "+c+" "+e+" "+f+" "+g+" "+" "+h+" "+now_time.strftime(\'%Y\\%m\\%d\'));
以上是关于爬取校园新闻首页的新闻的主要内容,如果未能解决你的问题,请参考以下文章