zoukankan      html  css  js  c++  java
  • 获取一篇新闻的全部信息

    获取一篇新闻的全部信息

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

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

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

    发布时间:转换成datetime类型

    点击:

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

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

    具体代码如下:

     

     1 # 获取一篇新闻的全部信息
     2 import re
     3 import requests
     4 from bs4 import BeautifulSoup
     5 from datetime import datetime
     6 
     7 
     8 # 获取新闻id
     9 def newsnum(url):
    10     newsid = re.match('http://news.gzcc.cn/html/2018/meitishijie_0323/(.*).html', url).group(1)
    11     return newsid
    12 
    13 
    14 # 发布时间:datetime类型
    15 def newstime(soup):
    16     newsdate = soup.select('.show-info')[0].text.split()[0].split(':')[1]
    17     newstime = soup.select('.show-info')[0].text.split()[1]
    18     time = newsdate + ' ' + newstime
    19     time = datetime.strptime(time, '%Y-%m-%d %H:%M:%S')
    20     return time
    21 
    22 
    23 # 获取点击次数
    24 def click(url):
    25     id = re.findall('(d{1,5})', url)[-1]
    26     clickUrl = 'http://oa.gzcc.cn/api.php?op=count&id={}&modelid=80'.format(id)
    27     res = requests.get(clickUrl)
    28     newsClick = res.text.split('.html')[-1].lstrip("('").rstrip("');")
    29     newsDJ = '点击次数:' + newsClick + ''
    30     return newsDJ
    31 
    32 # 主函数
    33 def main(url):
    34     res = requests.get(url)
    35     res.encoding = 'utf-8'
    36     soup = BeautifulSoup(res.text, 'html.parser')
    37     print("新闻编号:" + newsnum(url));                       # 新闻编号id
    38     print("标题:" + soup.select('.show-title')[0].text);     # 标题
    39     print("发布时间:" + str(newstime(soup)));                # 发布时间
    40     print(click(url))
    41     print(soup.select('.show-info')[0].text.split()[2]);     # 作者
    42     print(soup.select('.show-info')[0].text.split()[3]);     # 审核
    43     print(soup.select('.show-info')[0].text.split()[4]);     # 来源
    44     print("内容:" + soup.select('.show-content')[0].text); # 内容
    45     return
    46 
    47 url = "http://news.gzcc.cn/html/2018/meitishijie_0323/9085.html"
    48 main(url)
    news

    运行截图如下:

  • 相关阅读:
    arthas命令ognl视频演示
    arthas命令sc和sm视频演示
    混合Java函数和Groovy闭包
    Mock System.in和检查System.out
    arthas命令logger动态修改日志级别--视频演示
    删除List中null的N种方法--最后放大招
    ovs安装教程
    win10中安装与配置maven
    win10系统中按顺序安装jdk、tomcat
    win10系统中按顺序安装jdk、tomcat
  • 原文地址:https://www.cnblogs.com/lys1894/p/10651740.html
Copyright © 2011-2022 走看看