爬取校园网
1. 用requests库和BeautifulSoup库,爬取校园新闻首页新闻的标题、链接、正文。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import requests from bs4 import BeautifulSoup url = 'http://news.gzcc.cn/html/xiaoyuanxinwen/' res = requests.get(url) res.encoding = 'utf-8' soup = BeautifulSoup(res.text, 'html.parser' ) news = soup.select( 'li' ) for new in news: if len (new.select( '.news-list-title' )) > 0 : title = new.select( '.news-list-title' )[ 0 ].text # 标题 aurl = new.select( 'a' )[ 0 ].attrs[ 'href' ] # URL text = new.select( '.news-list-description' )[ 0 ].text #正文 print (title + '\n' + text + '\n' + aurl + '\n' ) |
运行结果:
2. 分析字符串,获取每篇新闻的发布时间,作者,来源,摄影等信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | res2 = requests.get(aurl) res2.encoding = 'utf-8' soup2 = BeautifulSoup(res2.text, 'html.parser' ) info = soup2.select( '.show-info' )[ 0 ].text info = info.lstrip( '发布时间:' ).rstrip( '点击:次' ) # print(info) time = info[:info.find( '作者' )] # 发布时间 author = info[info.find( '作者:' ) + 3 :info.find( '审核' )] # 作者 check = info[info.find( '审核:' ) + 3 :info.find( '来源' )] # 审核 source = info[info.find( "来源:" ) + 3 :info.find( '摄影' )] # 来源 print (time, author, check, source,end = "") if (info.find( "摄影:" )> 0 ): photogra = info[info.find( "摄影:" ) + 3 :] # 摄影 print (photogra) else : print () |
运行结果:
3. 将其中的发布时间由str转换成datetime类型。
1 2 3 4 5 6 | from datetime import datetime time = '2018-04-01 11:57:00' formart = datetime.strptime(time, '%Y-%m-%d %H:%M:%S' ) print ( type (formart)) print (formart, formart.strftime( '%Y/%m/%d' )) |
运行结果:
4. 将完整的代码及运行结果截图发布在作业上。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import requests from bs4 import BeautifulSoup url = 'http://news.gzcc.cn/html/xiaoyuanxinwen/' res = requests.get(url) res.encoding = 'utf-8' soup = BeautifulSoup(res.text, 'html.parser' ) news = soup.select( 'li' ) for new in news: if len (new.select( '.news-list-title' )) > 0 : title = new.select( '.news-list-title' )[ 0 ].text # 标题 aurl = new.select( 'a' )[ 0 ].attrs[ 'href' ] # URL text = new.select( '.news-list-description' )[ 0 ].text #正文 print (title + '\n' + text + '\n' + aurl + '\n' ) res2 = requests.get(aurl) res2.encoding = 'utf-8' soup2 = BeautifulSoup(res2.text, 'html.parser' ) info = soup2.select( '.show-info' )[ 0 ].text info = info.lstrip( '发布时间:' ).rstrip( '点击:次' ) # print(info) time = info[:info.find( '作者' )] # 发布时间 author = info[info.find( '作者:' ) + 3 :info.find( '审核' )] # 作者 check = info[info.find( '审核:' ) + 3 :info.find( '来源' )] # 审核 source = info[info.find( "来源:" ) + 3 :info.find( '摄影' )] # 来源 print (time, author, check, source,end = "") if (info.find( "摄影:" )> 0 ): photogra = info[info.find( "摄影:" ) + 3 :] # 来源 print (photogra) else : print () |
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· 在线客服系统 QPS 突破 240/秒,连接数突破 4000,日请求数接近1000万次,.NET 多
· C# 开发工具Visual Studio 介绍
· 在 Windows 10 上实现免密码 SSH 登录
· C#中如何使用异步编程