爬取校园新闻首页的新闻

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

import requests  
from bs4 import BeautifulSoup url = requests.get("http://news.gzcc.cn/html/xiaoyuanxinwen/")url.encoding = "utf-8"
soup = BeautifulSoup(url.text,'html.parser')#print(soup.head.title.text)
for news in soup.select('li'):if len(news.select('.news-list-title'))>0:#print(news.select('.news-list-title'))                          #print(news.select('.news-list-title')[0])      #print(news.select('.news-list-title')[0].text) time = news.select('.news-list-info')[0].contents[0].text title = news.select('.news-list-title')[0].text           href = news.select('a')[0]['href']                     href_text = requests.get(href)                            href_text.encoding = "utf-8"href_soup = BeautifulSoup(href_text.text,'html.parser')href_text_body = href_soup.select('.show-content')[0].textprint(time,title,href,href_text_body)     

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

# print(news)
def analyseNewsArticle(href):print('**' * 5 + '详情页信息' + '**' * 10)res1 = requests.get(href)res1.encoding = 'UTF-8'soup1 = BeautifulSoup(res1.text, 'html.parser')news_info = soup1.select('.show-info')[0].textinfo_list = ['来源', '发布时间', '点击', '作者', '审核', '摄影']  # 需要解析的字段news_info_set = set(news_info.split('\xa0')) - {' ', ''}  # 网页中的 获取后会解析成\xa0,所以可以使用\xa0作为分隔符# 循环打印文章信息for n_i in news_info_set:for info_flag in info_list:if n_i.find(info_flag) != -1:  # 因为时间的冒号采用了英文符所以要进行判断if info_flag == '发布时间':print(info_flag + ':' + n_i[n_i.index(':') + 1:])elif info_flag == '点击':  # 点击次数是通过文章id访问php后使用js写入,所以这里单独处理click_num_url = 'http://oa.gzcc.cn/api.php?op=count&id={}&modelid=80'res2 = requests.get(click_num_url.format(href[href.rindex('/') + 1:href.index('.html')]))res2.encoding = 'UTF-8'print(info_flag + ':' + res2.text[res2.text.rindex("('") + 2:res2.text.rindex("')")])else:print(info_flag + ':' + n_i[n_i.index(':') + 1:])news_content = soup1.select('#content')[0].textprint(news_content)  # 文章内容print('————' * 40)for n in news:# print(n)print('**' * 5 + '列表页信息' + '**' * 10)print('新闻链接:' + n.a.attrs['href'])print('新闻标题:' + n.select('.news-list-title')[0].text)print('新闻描述:' + n.a.select('.news-list-description')[0].text)print('新闻时间:' + n.a.select('.news-list-info > span')[0].text)print('新闻来源:' + n.a.select('.news-list-info > span')[1].text)analyseNewsArticle(n.a.attrs['href'])

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

form datetime import datetime, timedeltaimport timestart_date = datetime.strptime("2018-04-03", "%Y-%m-%d")  

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

 

转载于:https://www.cnblogs.com/tyx123/p/8710871.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php服务划分,云计算提供的服务分为哪三个层次

三个层次:1、基础设施即服务(IaaS),向云计算提供商的个人或组织提供虚拟化计算资源;2、平台即服务(PaaS),为开发人员提供通过全球互联网构建应用程序和服务的平台;3、软件即服务((SaaS),通过互联网提供按需…

如何做个人职业规划和年度计划

在做规划的同时,已经结合工作和个人自身情况思考调整个人的职业规划以及2012年自己的学习成长计划。持续了大约2个月的时间,已经整理出了2012年自己的目标和计划。总结一下,制定个人规划大致分为几个步骤: 一、认识自己。主要包括…

centos 7 快速安装nginx

输入指令 vim /etc/yum.repos.d/nginx.repo 输入以下内容 [nginx] namenginx repo baseurlhttp://nginx.org/packages/centos/7/$basearch/ gpgcheck0 enabled1 wq 进行保存 验证是否安装成功 安装 yum install nginx 启动nginx服务 nginx 测试是否启动成功 在linux输入你的IP地…

matlab colorbar采用对数,matlab colorbar的使用 | 學步園

1:請問matlab中畫多張圖如何使用同一範圍的colorbar?例如生成了圖1,2,3生成圖1時,使用temp1caxis;將圖1的z值的取值範圍(即colorbar的取值範圍)取出。生成圖2,3時使用caxis(temp1)命令將圖2,3的z值的取值範圍設為同1相同。然後對各個同使用colorbar命令…

php拖拽原理,JS拖拽效果及原理解析

这篇文章主要介绍了如何实现js拖拽效果及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下元素拖拽分成3个步骤:按下鼠标,移动鼠标,松开鼠标。拖拽原理:按下…

jqGrid细节备注—pager文字的设置,更改默认的提交方式

默认的pager显示的文字,在英文版本下是如下 (file grid.locale-en.js): $.jgrid { defaults : { recordtext: "View {0} - {1} of {2}", emptyrecords: "No records to view", loadtext: "Loading...", pgtext : "Page {0} of …

浅谈拓扑排序

今天来讲讲拓扑排序 度娘告诉我 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样…

makemid+matlab,《MATLAB基础》双语课

MATLAB双语教学视频第17讲MATLAB双语教学视频第18讲Summarizing DataIn this section...“Overview” on page 5-10“Measures of Location” on page 5-10“Measures of Scale” on page 5-11“Shape of a Distribution” on page 5-11OverviewMany MATLAB functions enable y…

php获取页面的可视内容高度,网页制作技巧:获取页面可视区域的高度_css

文章简介:获取页面可视区域高度,获取页面高度,获取滚动条滚动上去的页面高度.function getWH(){ var wh {}; "Height Width".replace(/[^/s]/g,function(a){ var b a.toLowerCase(); wh[b]window["inner".concat(a)] d…

安装与配置-以前的某个程序安装已在安装计算机上创建挂起的文件操作......

今日在Windows XP SP2的计算机上,安装SQL Server 2000 Standard Edition,安装不上,错误信息如下: 文字描述为: 以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机。 解决方法…

带预览图的js切换效果!

效果图: js代码: var isIE (document.all) ? true : false;var $ function (id) {return "string" typeof id ? document.getElementById(id) : id; };var Class {create: function() {return function() { this.initialize.apply(this,…

Python成长之路【第七篇】:Python基础之装饰器

一、什么是装饰器 装饰:装饰既修饰,意指为其他函数添加新功能 器:器既函数 装饰器定义:本质就是函数,功能是为其他函数添加新功能 二、装饰器需要遵循的原则 1、不能修改装饰器的源代码(开放封闭原则&#…

sql数据库与oracle数据库同步,[sql数据库同步]Oracle与SQL Server如何实现表数据同步...

在线QQ客服:1922638专业的SQL Server、MySQL数据库同步软件数据库的Oracle版本为10.2,并安装在Linux系统上。数据库SQL Server的版本是SQL 2005,已安装在Windows XP系统上。现在我们需要做的是在两个数据库表之间同步数据。现在,最…

零食嘴----美食领域的美丽说

零食嘴美食分享社区首页 阿里巴巴参谋长曾鸣曾说过:“淘宝等美丽说模式整整等了两年。不仅在女性领域,阿里希望在各个维度都出现‘美丽说’。” 零食嘴就是美食领域美丽说。 所谓的美丽说模式,是指社会化电子商务分享的模式,在一个…

测试用例设计方法

测试用例设计方法 本篇由本人整理黑盒、白盒、接口测试一系列用例设计方法。 黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景图法等。 (一)等价类划分法 定义:等…

Disk Quota磁盘配额

Disk Quota :磁盘配额 限制某个用户或某个组,对某个分区(生效级别是文件系统)的使用能力;由于早期的Unix系统是多用户、多任务的环境,所以一台主机的磁盘会被多个用户使用,某个用户占用大量的磁盘空间会影响其他用户对…

linux进度条脚本,Linux下简易进度条的实现代码

在生活中,进度条是很常见的,那么,进度条是如何实现的呢?首先,进度条的动态是利用人眼视觉暂留效果的。实际上是如下过程:先输出:[ ]表示进度是1%,刷新之后再输出:[ …

[原]Jenkins(二十) jenkins再出发之Error: Opening Robot Framework log failed

错误缘由:使用plugin [public robot framework test results] 生成的HTML文件都无法正常打开.解决方案:Connect on your jenkins url (http://[IP]:8080/) Click on administer Jenkins Click on consol jenkins Copy this into the field and execut…

【016】VS2010连接内置SQL数据库

参考:传智播客.Net培训.net视频教程 >> 【05】第五季 ADO.NET(1-30) 示例代码:sql_test.zip 首先建立一个 控制台 或者 WinForm 项目,然后进行下面的操作! 1. 在 项目 上面右键》添加》新建项 2. 接下…

为什么生产环境都是linux,关于生产环境linux系统中的wheel用户组

本文系统环境:CentOS Linux release 7.7.1908 (Core)一般来说,目前linux系统中的wheel组,默认情况是没有使用到的、如果要使用wheel组,让其有具体的作用,需要结合/etc/pam.d/su文件配置很多在Linux中为了更进一步加强系…