首页 > 其他 > 详细

获取一篇新闻的全部信息

时间:2019-04-01 22:31:14      阅读:186      评论:0      收藏:0      [点我收藏+]

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

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

发布时间:转换成datetime类型

点击:

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

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

 

尝试去爬取一个你感兴趣的网页。

import requests
from bs4 import BeautifulSoup
from datetime import datetime
import re
if __name__ == __main__:#"https://www.bilibili.com/read/cv1119650?from=search"

def bzNews(url):
    #url不合法会崩掉

    res=requests.get(url)
    type(res)
    res.encoding="utf-8"
    soup1=BeautifulSoup(res.text,html.parser)
    #此网页发布时间处理
    dateTime = soup1.find(meta,{itemprop:datePublished})
    type(dateTime)
    dateTime = str(dateTime)
    #分隔时间格式
    DT = re.findall("(\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2})",dateTime)
    #作者名称
    au=soup1.select(.author-name)[0].text
    #标题
    title=soup1.select(.title)[2].text
    time = DT
    #处理时间
    pubtime= datetime.strptime(time[0],%Y-%m-%d %H:%M:%S)
    pubtime = pubtime.strftime(%Y{y}%m{m}%d{d} %U{a}%w %H{h}%M{f}%S{s}%p).format(y=,m=,d=,h=,f=,s=,a=周 星期)

    print(" 作者:",au,\n,"标题:",title,\n,"发布时间:",pubtime,\n)

def main():
    while(1):
        url =input("输入哔哩哔哩的新闻网址:")
        bzNews(url)
        ending =int(input("输入0退出"))
        if(ending==0):break

main()

技术分享图片

  另外通过查看network发现在一个viewinfo的requests对象中有存放点赞,观看数的json数据,下次再做解析json数据

技术分享图片

 

获取一篇新闻的全部信息

原文:https://www.cnblogs.com/FreyjaFs/p/10639224.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!