作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2894


给定一篇新闻的链接newsUrl,获取该新闻的全部信息

  标题、作者、发布单位、审核、来源

  发布时间:转换成datetime类型

  点击:

  • newsUrl
  • newsId(使用正则表达式re)
  • clickUrl(str.format(newsId))
  • requests.get(clickUrl)
  • newClick(用字符串处理,或正则表达式)
  • int()

整个过程包装成一个简单清晰的函数。

#coding = utf-8;
import re;
import requests;
from datetime import datetime;
from bs4 import BeautifulSoup; class News(object):
'''
广商校园新闻
'''
def __init__(self, url):
self.url = url; #新闻网页地址
self._dom_tree = self._tranfrom_dom_tree(url); self._show_infos = self._dom_tree.select(".show-info")[0].text.split();
self._update_time = self._show_infos[0][5:] + " " + self._show_infos[1]; # 最后更新时间 def _tranfrom_dom_tree(self,url):
'''
将获取的html文本转化为dom树
'''
response = requests.get(url);
response.encoding = "utf-8";
return BeautifulSoup(response.text, "html.parser"); # 新闻标题
@property
def title(self):
return self._dom_tree.select(".show-title")[0].text; # 新闻作者
@property
def auothor(self):
return self._show_infos[2][3:]; # 新闻审核
@property
def auditor(self):
return self._show_infos[3][3:]; # 新闻发布单位
@property
def origin(self):
self._show_infos[4][3:]; # 新闻最后更新时间
@property
def update_time(self):
return self._update_time;
@update_time.setter
def update_time(self, time):
self._update_time = time; # 点击次数
@property
def times(self):
clickUrl = 'http://oa.gzcc.cn/api.php?op=count&id={}&modelid=80'.format(self.news_id);
res = requests.get(clickUrl)
click = re.findall('(\d+)', res.text)[-1]
return click # 新闻标识
@property
def news_id(self):
time = datetime.strptime(self._update_time, '%Y-%m-%d %H:%M:%S');
time = time.strftime("%m%d");
re.match('http://news.gzcc.cn/html/2019/.*/(\d+).html', self.url).group(1) if __name__ == "__main__":
html_url = "http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0322/11047.html";
news = News(html_url);

python爬取指定新闻的更多相关文章

  1. 如何利用python爬取网易新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: LSGOGroup PS:如有需要Python学习资料的小伙伴可以 ...

  2. python 爬取36K新闻

    代码如下: from urllib import request url = 'http://36kr.com/api/info-flow/newsflash_columns/newsflashes? ...

  3. Python爬取指定重量的快递价格

    目录 一.获取查询接口 二.获取相关数据 三.编写爬虫脚本 四.查看查询效果 背景:现在这个时代,快递横飞.我们想寄一个快递,给出的选择也是多种多样的(根据快递的大小.送达的时间.寄送的距离及价格.公 ...

  4. Python爬虫实战教程:爬取网易新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Amauri PS:如有需要Python学习资料的小伙伴可以加点击 ...

  5. Python爬虫实战教程:爬取网易新闻;爬虫精选 高手技巧

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. stars声明很多小伙伴学习Python过程中会遇到各种烦恼问题解决不了.为 ...

  6. Python爬取腾讯新闻首页所有新闻及评论

    前言 这篇博客写的是实现的一个爬取腾讯新闻首页所有的新闻及其所有评论的爬虫.选用Python的Scrapy框架.这篇文章主要讨论使用Chrome浏览器的开发者工具获取新闻及评论的来源地址. Chrom ...

  7. python爬虫,爬取一系列新闻

    这个作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2941. 由于存在多次请求,所以稍微将请求封装如下 def tr ...

  8. Python爬取豆瓣指定书籍的短评

    Python爬取豆瓣指定书籍的短评 #!/usr/bin/python # coding=utf-8 import re import sys import time import random im ...

  9. Python 爬取所有51VOA网站的Learn a words文本及mp3音频

    Python 爬取所有51VOA网站的Learn a words文本及mp3音频 #!/usr/bin/env python # -*- coding: utf-8 -*- #Python 爬取所有5 ...

随机推荐

  1. Android Studio帮助文档的安装及智能提示设置

    初次使用Android Studio,发现其智能提示不能像Visual Studio一样显示系统方法等的详细用途描述.经查找资料,问题原因是未安装SDK Document. 解决办法如下: 1.打开如 ...

  2. php curl请求和获取接口数据

    curl请求和获取接口数据 class ToolModel{ /** * [http 调用接口函数] * @Author GeorgeHao * @param string $url [接口地址] * ...

  3. 请求库之requests模块

    本片导航: 介绍 基于GET请求 基于POST请求 响应Response 高级用法   一.介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的a ...

  4. __x__(6)0905第二天__标签属性=“值”

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  5. SSM的,日常错误

    org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.imooc ...

  6. 数据库 case when then 的用法 (举个栗子~~~)

    select a.TradeType,a.TradeState,a.Pname,a.OutTradeNo,a.*, (CASE a.TradeType when '1' then '充值' when ...

  7. Jenkins实现自动运行jmeter脚本

    下载安装包 --jenkins的war包 下载地址:http://jenkins-ci.org/ 链接:https://pan.baidu.com/s/1VhwgYWqn3Bex2kCHigW5wA ...

  8. Notepad++ 64位 插件管理器 PluginManager 安装 更新

    32位的自带不多说,64位的内置不带,需要自己去找,这里给个地址: https://github.com/bruderstein/nppPluginManager/releases 地址里面有64位管 ...

  9. hue,kylin,ambari

    apache-kylin https://ambari.apache.org/ https://www.jianshu.com/p/c49c61b654da docker pull sequencei ...

  10. kubernetes in action - Volumes

    Volume解决Kubernetes的存储的问题 对于Pod使用的存储,抽象为volume,volume伴随着Pod的创建而创建,消失而同时消失,不能单独的创建 这样的好处,是存储的塑胶不会因为某个c ...