爬取校园新闻首页的新闻
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' ) for new in soup.select( 'li' ): if len (new.select( '.news-list-info' ))> 0 : s0 = new.select( '.news-list-title' )[ 0 ].text # 标题内容 s1 = new.select( 'a' )[ 0 ].attrs[ 'href' ] # 链接 resd = requests.get(s1) resd.encoding = 'utf-8' soupd = BeautifulSoup(resd.text, 'html.parser' ) s2 = soupd.select( '#content' )[ 0 ].text #正文 print (s1,s0,s2) |
2. 分析字符串,获取每篇新闻的发布时间,作者,来源,摄影等信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import requests from bs4 import BeautifulSoup from datetime import datetime url = 'http://news.gzcc.cn/html/xiaoyuanxinwen/' res = requests.get(url) res.encoding = 'utf-8' soup = BeautifulSoup(res.text, 'html.parser' ) for new in soup.select( 'li' ): if len (new.select( '.news-list-info' ))> 0 : s1 = new.select( 'a' )[ 0 ].attrs[ 'href' ] # 链接 resd = requests.get(s1) resd.encoding = 'utf-8' soupd = BeautifulSoup(resd.text, 'html.parser' ) info = soupd.select( '.show-info' )[ 0 ].text dt = info.lstrip( '发布时间:' )[: 19 ] #发布时间 sh = info[info.find( '作者:' ):].split()[ 0 ].lstrip( '作者:' ) #作者 sh1 = info[info.find( '审核:' ):].split()[ 0 ].lstrip( '审核:' ) # 审核 sh2 = info[info.find( '来源:' ):].split()[ 0 ].lstrip( '来源:' ) # 来源 print ( '发布时间:' + dt + '\t作者:' + sh + '\t审核:' + sh1 + '\t来源:' + sh2) |
3. 将其中的发布时间由str转换成datetime类型。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import requests from bs4 import BeautifulSoup from datetime import datetime url = 'http://news.gzcc.cn/html/xiaoyuanxinwen/' res = requests.get(url) res.encoding = 'utf-8' soup = BeautifulSoup(res.text, 'html.parser' ) for new in soup.select( 'li' ): if len (new.select( '.news-list-info' ))> 0 : s1 = new.select( 'a' )[ 0 ].attrs[ 'href' ] # 链接 resd = requests.get(s1) resd.encoding = 'utf-8' soupd = BeautifulSoup(resd.text, 'html.parser' ) info = soupd.select( '.show-info' )[ 0 ].text dt = info.lstrip( '发布时间:' )[: 19 ] #发布时间 dati = datetime.strptime(dt, '%Y-%m-%d %H:%M:%S' ) print (dati) |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
· 程序员常用高效实用工具推荐,办公效率提升利器!