python爬取指定新闻
作业的要求来自于: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爬取指定新闻的更多相关文章
- 如何利用python爬取网易新闻
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: LSGOGroup PS:如有需要Python学习资料的小伙伴可以 ...
- python 爬取36K新闻
代码如下: from urllib import request url = 'http://36kr.com/api/info-flow/newsflash_columns/newsflashes? ...
- Python爬取指定重量的快递价格
目录 一.获取查询接口 二.获取相关数据 三.编写爬虫脚本 四.查看查询效果 背景:现在这个时代,快递横飞.我们想寄一个快递,给出的选择也是多种多样的(根据快递的大小.送达的时间.寄送的距离及价格.公 ...
- Python爬虫实战教程:爬取网易新闻
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Amauri PS:如有需要Python学习资料的小伙伴可以加点击 ...
- Python爬虫实战教程:爬取网易新闻;爬虫精选 高手技巧
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. stars声明很多小伙伴学习Python过程中会遇到各种烦恼问题解决不了.为 ...
- Python爬取腾讯新闻首页所有新闻及评论
前言 这篇博客写的是实现的一个爬取腾讯新闻首页所有的新闻及其所有评论的爬虫.选用Python的Scrapy框架.这篇文章主要讨论使用Chrome浏览器的开发者工具获取新闻及评论的来源地址. Chrom ...
- python爬虫,爬取一系列新闻
这个作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2941. 由于存在多次请求,所以稍微将请求封装如下 def tr ...
- Python爬取豆瓣指定书籍的短评
Python爬取豆瓣指定书籍的短评 #!/usr/bin/python # coding=utf-8 import re import sys import time import random im ...
- Python 爬取所有51VOA网站的Learn a words文本及mp3音频
Python 爬取所有51VOA网站的Learn a words文本及mp3音频 #!/usr/bin/env python # -*- coding: utf-8 -*- #Python 爬取所有5 ...
随机推荐
- 20189210牟健 《Linux内核原理与分析》第二周作业
本周学习了汇编指令以及通过反汇编一个小程序来了解栈的变化 写了一个简单的C程序,如图所示: 通过gcc -s -o main.s main.c -m32指令将其编译成汇编程序 打开该汇编文件并删除不重 ...
- file_get_contents 在本地测试可以, 但在服务器上报错403
解决方法: Most likely if you don't get any content while accessing an webpage, probably it doesn't want ...
- github=>git=>composer Packages 使用教程
2018年12月17日14:32:05 因为要做搜索,所以需要用分词工具php的分词不借助的第三方的真的很少, 目前选择的是 http://www.phpbone.com/phpanalysis/ 但 ...
- 微信小程序页面带参数跳转
页面传递参数的方式 data-para js获取参数
- 安装Office2010出现MSXML版本6.10.1129.0错误
在键盘上按“win+R”组合键出现图图示界面后,输入“regsvr32 /u msxml6.dll”,点击“确定”. 出现图示显示后,点击“确定”,并同时去试试office是否能够安装了. 如果上 ...
- box-sizing (摘录)
//http://www.jianshu.com/p/e2eb0d8c9de6 box-sizing其它的值 content-box 描述:在宽度和高度之外绘制元素的内边距和边框. border-bo ...
- centos7安装mysql8
1.检查系统是否有安装mysql或mariadb,如果有则删除 2.yum localinstall https://repo.mysql.com//mysql80-community-release ...
- IntelliJ IDEA 指定Java编译版本
在IntelliJ IDEA 15中使用Maven时,IDEA将默认的编译版本.源码版本设置为jdk5.编译项目的时候出现警告:”Warning:Java: 源值1.5已过时, 将在未来所有发行版中删 ...
- Windows服务器外网无法访问web的解决方法
windows环境下使用集成 IIS服务器时一般不会发生外网无法访问的问题,而使用apache.kangle.lighttpd.niginx.tomcat等时:服务器上可通过配置的域名访问网站,pin ...
- mysql 查询 最大值,最小值,第二大,第三大 一共四个值
最大值:select max(num) from table 第二大值:select max(num) from tablewhere num not in(select max(num) from ...