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 ...
随机推荐
- pytorch简介
诞生 1.2017年1月,Facebook人工智能研究院(FAIR)团队在GitHub上开源了pyTorch,并迅速占领GitHub热度榜榜首. 常见深度学习框架简介 Theano 1.Theano最 ...
- 关于UITabBarController的设置(iOS 开发)
1.设置图片(选中以及未选中) UITabBarItem *TuiJianItem=[[UITabBarItem alloc]initWithTitle:@"我的" image:[ ...
- angular.isElement()
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- SourceTree安装跳过登录
安装 SourceTree 时,需要使用atlassian授权,因为各种原因无法完成授权,现提供跳过 atlassian账号 授权方法. 安装之后,转到用户本地文件夹下的 SourceTree 目录, ...
- 怎样将PDF文件转换成Excel表格
PDF文件怎样转换成Excel表格呢?因为很多的数据信息现在都是通过PDF文件进行传输的,所以很多时候,信息的接受者都需要将这些PDF文件所传输的数据信息转换成Excel表格来进行整理,但是我们应该怎 ...
- Spring Security Session并发控制原理解析
当使用spring security 的标签,如下,其中<sec:session-management>对应的SessionManagementFilter.从名字可以看出,这是一个管理S ...
- zabbix自定义监控项、添加图形、设置触发器、远程执行命令
监控项是在zabbix中手机数据的基础,没有监控项就没有数据,系统自带模板带有大量默认item,自定义item可以定义在模板中,在应用模板即可使用对应item:也可直接在host中定义 目标:自定义监 ...
- Python结合SAP GUI Script操作sap的简易教程
众所周知,如果要用Python做一些桌面WIN32应用的自动化工作,就需要用到著名的pywin32尤其是其中的win32com.client模块,pywin32的安装不能直接通过pip install ...
- np.mgrid 用法
import numpy as np dtype=np.float32 num_anchors = 6 y, x = np.mgrid[0:4, 0:4] print(y) print(x) y = ...
- 21.命名空间别名限定符::和global全局名称空间限定符
命名空间别名限定符(::)用于查找标识符,它在指定的别名的命名空间中查找运算符,如下代码是在全局名称空间中查找System.Console.WriteLine("Hello World&qu ...