博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爬取校园新闻首页的新闻
阅读量:6910 次
发布时间:2019-06-27

本文共 2688 字,大约阅读时间需要 8 分钟。

1. 用requests库和BeautifulSoup库,爬取校园新闻首页新闻的标题、链接、正文。

import requestsfrom bs4 import BeautifulSoupurl = '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:        d = news.select('.news-list-info')[0].contents[0].text  #时间        t = news.select('.news-list-title')[0].text  #标题        a = news.select('a')[0].attrs['href']   #连接        print(d, t, a)              # 通过连接获取新闻网页        res2 = requests.get(a)        res2.encoding = 'utf-8'        soup2 = BeautifulSoup(res2.text, 'html.parser')        # 取得新闻正文        z=soup2.select('#content')[0].text        print(z)        break

  运行结果如图所示:

 

 

2. 分析字符串,获取每篇新闻的发布时间,作者,来源等信息。

#取得发布时间、作者等数据项        info=soup2.select('.show-info')[0].text        # print(info)        dt = info.lstrip('发布时间:')[:19]        at = info[info.find('作者:'):].split()[0].lstrip('作者:')        sh = info[info.find('审核:'):].split()[0].lstrip('审核:')        ly = info[info.find('来源:'):].split()[0].lstrip('来源:')        print(dt, at, sh, ly)

  运行结果如下:

 

 

3. 将其中的发布时间由str转换成datetime类型。

from datetime import datetime        dati = datetime.strptime(dt, '%Y-%m-%d %H:%M:%S')        print(dati, dati.strftime('%Y/%m/%d'))

  运行结果如图所示:

 

 

4. 将完整的代码及运行结果截图发布在作业上

 

# -*- coding: UTF-8 -*-# -*- author: wang -*-import requestsfrom bs4 import BeautifulSoupurl = '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:                        #时间        d = news.select('.news-list-info')[0].contents[0].text        t = news.select('.news-list-title')[0].text                   #标题        a = news.select('a')[0].attrs['href']                           #连接        print(d, t, a)        # 通过连接获取新闻网页        res2 = requests.get(a)        res2.encoding = 'utf-8'        soup2 = BeautifulSoup(res2.text, 'html.parser')        # 取得新闻正文        z=soup2.select('#content')[0].text        print(z)        #取得发布时间、作者等数据项        info=soup2.select('.show-info')[0].text        print(info)        dt = info.lstrip('发布时间:')[:19]        at = info[info.find('作者:'):info.find('审核:')].split()[0].lstrip('作者:')        sh = info[info.find('审核:'):].split()[0].lstrip('审核:')        ly = info[info.find('来源:'):].split()[0].lstrip('来源:')        print(dt,at,sh,ly)        from datetime import datetime        dati = datetime.strptime(dt, '%Y-%m-%d %H:%M:%S')        # print(type(dati))        print(dati, dati.strftime('%Y/%m/%d'))        break

  

 

运行代码如图所示:

 

转载于:https://www.cnblogs.com/zhiling123/p/8710850.html

你可能感兴趣的文章
MyBatis标签
查看>>
C-问题
查看>>
Spark SQL编程
查看>>
spring概览
查看>>
日期和时间模式
查看>>
获取请求地址
查看>>
apche druid log 配置
查看>>
快播创始人微博晒出团队合照
查看>>
mysql 登录退出命令
查看>>
对于设计模式最近观感的浅薄理解
查看>>
Spring中AOP使用——配置xml方式
查看>>
JavaScript是如何工作的:深入类和继承内部原理 + Babel和TypeScript 之间转换
查看>>
.net reactor使用教程(一)——界面各功能说明
查看>>
腾讯 AI Lab 正式开源PocketFlow,让深度学习放入手机!
查看>>
教你在Docker上不到2分钟建立一个多模型数据库!
查看>>
网络编程
查看>>
zookeeper选举机制
查看>>
python输入输出语句
查看>>
无法连接LINUX中的MYSQL
查看>>
HTTPS时代的到来是大势所趋!阿里云CDN如何助力企业网站进入HTTPS时代
查看>>