python爬虫获取知乎首页热门新闻,并保存到excel!

今天毛毛的学习笔记是:爬取知乎首页的hot热榜!这里抓取了50条数据,limit=50,这里调大也没有用,因为网站只有50条热榜数据!

小结:这里爬取的是json数据,获取了【标题、内容、热度(火热系数)】 后期可以对火热度做一个统计图 作为数据可视化的一个练习。

代码分享:

# -*- codeing = utf-8 -*-
# @Time : 2022/9/29 0029 18:23
# @Author : 毛毛
# @File : main.py
# @Function :爬抓知乎上的 新闻信息 首页->hot   并保存到excel

#https://www.zhihu.com/api/v3/feed/topstory/hot-lists/total?limit=50&desktop=true

import requests
import xlwt

# 采集内容
def main(dataliste):
    url = 'https://www.zhihu.com/api/v3/feed/topstory/hot-lists/total?limit=50&desktop=true'
    headers = {
        "user-agent":"Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 105.0.0.0 Safari / 537.36",
        "referer":"https://www.zhihu.com/hot"
    }

    response = requests.get(url,headers=headers)
    # response.encoding('utf-8')
    data = response.json()
    for i in range(len(data['data'])):
        row = []  # 定义一个空数组 来添加每一个内容  注意:每一次都要重新添加,所以要增加到for循环以内
        title = data['data'][i]['target']['title']
        row.append(title)

        content = data['data'][i]['target']['excerpt']
        content = str(content).replace('http://www.pbc.gov.cn/goutongjiaoliu/113456/113469/4671694/index.html',"") # 去除文章中的链接
        content = content.replace('\t',"") #去除文章中的\t
        row.append(content)

        redu = data['data'][i]['detail_text']
        redu = str(redu).replace(' 万热度',"") #去掉” 万热度“只保留数字
        row.append(redu)

        dataliste.append(row) #将所有数组装到一起
    return dataliste

#并保存到excel
def savelist(dataliste):
    workbook = xlwt.Workbook(encoding='utf-8')  #创建workbook对象
    workbooksheel = workbook.add_sheet('知乎hot新闻',cell_overwrite_ok=True)# cell_overwrite_ok表示可以覆盖已有数据
    col = ('标题', '内容', '热度')
    for i in range(0,3): #左闭右开 所以写0-3
        workbooksheel.write(0, i, col[i])

    for i in range(len(dataliste)):
        data = dataliste[i]
        for j in range(len(data)):
            workbooksheel.write(i+1,j,data[j])  # y纵 , x横
        print("写入了第%d条"%i)

    workbook.save('知乎hot新闻.xls')


if __name__ == "__main__":
    dataliste = []  # 定义一个空数组来装所有内容
    #爬取数据
    main(dataliste)
    #print(dataliste)
    #保存数据
    savelist(dataliste)
如下载链接失效,请联系管理员处理【QQ:941007525,微信:style028666】

免责申明:
本站资源均来源于互联网,如有侵权请联系站长!将第一时间删除
本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
资源仅供学习参考请勿商用或其它非法用途,否则一切后果用户自负!

毛毛博客 » python爬虫获取知乎首页热门新闻,并保存到excel!

发表回复

简简单单,不求发展

立即查看 了解详情