【python】爬取知乎热榜Top50保存到Excel文件中【附源码】

这篇具有很好参考价值的文章主要介绍了【python】爬取知乎热榜Top50保存到Excel文件中【附源码】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998

   一、导入必要的模块:

    这篇博客将介绍如何使用Python编写一个爬虫程序,从斗鱼直播网站上获取图片信息并保存到本地。我们将使用requests模块发送HTTP请求和接收响应,以及os模块处理文件和目录操作。

        如果出现模块报错

【python】爬取知乎热榜Top50保存到Excel文件中【附源码】,爬虫案例100,python,excel,爬虫,人工智能

        进入控制台输入:建议使用国内镜像源

pip install requests -i https://mirrors.aliyun.com/pypi/simple

         我大致罗列了以下几种国内镜像源:

        

清华大学
https://pypi.tuna.tsinghua.edu.cn/simple

阿里云
https://mirrors.aliyun.com/pypi/simple/

豆瓣
https://pypi.douban.com/simple/ 

百度云
https://mirror.baidu.com/pypi/simple/

中科大
https://pypi.mirrors.ustc.edu.cn/simple/

华为云
https://mirrors.huaweicloud.com/repository/pypi/simple/

腾讯云
https://mirrors.cloud.tencent.com/pypi/simple/

    

二、发送GET请求获取响应数据:

        设置了请求头部信息,以模拟浏览器的请求,函数返回响应数据的JSON格式内容。

def get_html(url):
    header = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
    }
    response = requests.get(url=url, headers=header)
    # print(response.json())
    html = response.json()
    return html

        如何获取请求头:

        火狐浏览器:

  1. 打开目标网页并右键点击页面空白处。
  2. 选择“检查元素”选项,或按下快捷键Ctrl + Shift + C(Windows)
  3. 在开发者工具窗口中,切换到“网络”选项卡。
  4. 刷新页面以捕获所有的网络请求。
  5. 在请求列表中选择您感兴趣的请求。
  6. 在右侧的“请求标头”或“Request Headers”部分,即可找到请求头信息。

     将以下请求头信息复制出来即可

【python】爬取知乎热榜Top50保存到Excel文件中【附源码】,爬虫案例100,python,excel,爬虫,人工智能

三、代码实现

这段代码是用来爬取知乎热榜数据并保存到 Excel 文件中的。具体实现方法如下:

  1. 定义了一个函数 get_time,用于获取当前时间,并可以按照指定的格式进行输出。

def get_time(fmt:str='%Y-%m-%d %H-%M-%S') -> str:
    '''
    获取当前时间
    '''
    ts = time.time()
    ta = time.localtime(ts)
    t = time.strftime(fmt, ta)
    return t
  1. 定义了一个函数 save_hot_list,用于保存热榜数据到 Excel 文件中。

def save_hot_list() -> None:
    # 请求头
    headers = {
​
        'User-Agent': 'osee2unifiedRelease/4318 osee2unifiedReleaseVersion/7.7.0 Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
        'Host': 'api.zhihu.com',
​
​
    }
    # 请求参数
    params = (
        ('limit', '50'),
        ('reverse_order', '0'),
    )
    # 发送请求
    response = requests.get(
        'https://zhihu.com/topstory/hot-list', headers=headers, params=params)
​
    items = response.json()['data']

首先定义请求头和请求参数,然后发送 GET 请求获取知乎热榜数据。其中 response.json()['data'] 取出了返回结果中的 data 字段,即热榜列表数据。

    rows = []
    now = get_time()
    # 取日期为文件夹名称
    dir_path = now.split(' ')[0]
    # 文件夹不存在则创建
    if not os.path.exists(dir_path):
        os.makedirs(dir_path)

定义一个空列表 rows 来存储热榜数据,然后获取当前时间并将其拆分为日期和时间两个部分。这里我们只需要日期部分作为保存数据的文件夹名称,如果这个文件夹不存在,则创建它。

  
  for rank, item in enumerate(items, start=1):
        target = item.get('target')
        title = target.get('title')
        answer_count = target.get('answer_count')
        hot = int(item.get('detail_text').split(' ')[0])
        follower_count = target.get('follower_count')
        question_url = target.get('url').replace(
            'api', 'www').replace('questions', 'question')
        rows.append({
            '排名': rank,
            '标题': title,
            '回答数': answer_count,
            '关注数': follower_count,
            '热度(万)': hot,
            '问题链接': question_url
        })

遍历全部热榜数据,并从中取出我们需要的属性,包括:标题、回答数、关注数、热度和问题链接。将这些属性添加到 rows 列表中。

    df = pd.DataFrame(rows)
    now = get_time()
    excel_path = dir_path+'/Yan-英杰.xlsx'
    df.to_excel(excel_path, index=None)
    print(now, '的热榜数据数据已保存到文件', excel_path)

rows 列表转化为 Pandas 的 DataFrame,并将其保存到 Excel 文件中。Excel 文件的名称以当前日期作为文件夹名称,以 "Yan-英杰.xlsx" 作为文件名。最后输出保存完成的信息。

# 保存热榜数据
save_hot_list()

调用 save_hot_list 函数来执行保存操作。

四、效果图:

【python】爬取知乎热榜Top50保存到Excel文件中【附源码】,爬虫案例100,python,excel,爬虫,人工智能

五、完整代码

import requests
import pandas as pd
import time
import os


def get_time(fmt:str='%Y-%m-%d %H-%M-%S') -> str:
    '''
    获取当前时间
    '''
    ts = time.time()
    ta = time.localtime(ts)
    t = time.strftime(fmt, ta)
    return t


def save_hot_list() -> None:
    # 请求头
    headers = {

        'User-Agent': 'osee2unifiedRelease/4318 osee2unifiedReleaseVersion/7.7.0 Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
        'Host': 'api.zhihu.com',


    }
    # 请求参数
    params = (
        ('limit', '50'),
        ('reverse_order', '0'),
    )
    # 发送请求
    response = requests.get(
        'https://zhihu.com/topstory/hot-list', headers=headers, params=params)

    items = response.json()['data']
    rows = []
    now = get_time()
    # 取日期为文件夹名称
    dir_path = now.split(' ')[0]
    # 文件夹不存在则创建
    if not os.path.exists(dir_path):
        os.makedirs(dir_path)
    # 遍历全部热榜,取出几个属性
    for rank, item in enumerate(items, start=1):
        target = item.get('target')
        title = target.get('title')
        answer_count = target.get('answer_count')
        hot = int(item.get('detail_text').split(' ')[0])
        follower_count = target.get('follower_count')
        question_url = target.get('url').replace(
            'api', 'www').replace('questions', 'question')
        rows.append({
            '排名': rank,
            '标题': title,
            '回答数': answer_count,
            '关注数': follower_count,
            '热度(万)': hot,
            '问题链接': question_url
        })
    df = pd.DataFrame(rows)
    now = get_time()
    excel_path = dir_path+'/Yan-英杰.xlsx'
    df.to_excel(excel_path, index=None)
    print(now, '的热榜数据数据已保存到文件', excel_path)

# 保存热榜数据
save_hot_list()

   给大家推荐一个网站

    IT今日热榜 一站式资讯平台

【python】爬取知乎热榜Top50保存到Excel文件中【附源码】,爬虫案例100,python,excel,爬虫,人工智能


        里面包含了上百个IT网站,欢迎大家访问:IT今日热榜 一站式资讯平台

   iToday,打开信息的新时代。作为一家创新的IT数字媒体平台,iToday致力于为用户提供最新、最全面的IT资讯和内容。里面包含了技术资讯、IT社区、面试求职、前沿科技等诸多内容。我们的团队由一群热爱创作的开发者和分享的专业编程知识爱好者组成,他们精选并整理出真实可信的信息,确保您获得独特、有价值的阅读体验。随时随地,尽在iToday,与世界保持连接,开启您的信息新旅程!

IT今日热榜 一站式资讯平台IT今日热榜汇聚各类IT热榜:虎嗅、知乎、36氪、京东图书销售、晚点、全天候科技、极客公园、GitHub、掘金、CSDN、哔哩哔哩、51CTO、博客园、GitChat、开发者头条、思否、LeetCode、人人都是产品经理、牛客网、看准、拉勾、Boss直聘http://itoday.top/#/文章来源地址https://www.toymoban.com/news/detail-778035.html

到了这里,关于【python】爬取知乎热榜Top50保存到Excel文件中【附源码】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【python】爬取豆瓣电影排行榜Top250存储到Excel文件中【附源码】

       近年来,Python在数据爬取和处理方面的应用越来越广泛。本文将介绍一个基于Python的爬虫程 序,用于抓取豆瓣电影Top250的相关信息,并将其保存为Excel文件。          程序包含以下几个部分:            导入模块:程序导入了 BeautifulSoup、re、urllib.request、urllib

    2024年02月03日
    浏览(61)
  • Python爬虫实战系列:如何爬取某乎热搜榜单

    本篇文章将带你通过Python爬虫实战,学习如何爬取某乎平台的热搜榜单。

    2024年02月11日
    浏览(69)
  • 【爬虫案例】用Python爬取抖音热榜数据!

    目录 一、爬取目标 二、编写爬虫代码 三、同步讲解视频 3.1 代码演示视频 四、获取完整源码 您好,我是@马哥python说,一名10年程序猿。 本次爬取的目标是:抖音热榜 共爬取到50条数据,对应TOP50热榜。含5个字段,分别是: 热榜排名,热榜标题,热榜时间,热度值,热榜标签。

    2024年02月16日
    浏览(59)
  • python爬虫小练习——爬取豆瓣电影top250

    将爬取的数据导入到表格中,方便人为查看。 三大功能 1,下载所有网页内容。 2,处理网页中的内容提取自己想要的数据 3,导入到表格中 https://www.bilibili.com/video/BV1CY411f7yh/?p=15

    2024年01月17日
    浏览(48)
  • 知乎50道SQL题 分享

    知乎50道SQL题 分享,自己做的答案 -- 学生表 CREATE TABLE `Student` ( `s_id` VARCHAR(20), `s_name` VARCHAR(20) NOT NULL DEFAULT \\\'\\\', `s_birth` VARCHAR(20) NOT NULL DEFAULT \\\'\\\', `s_sex` VARCHAR(10) NOT NULL DEFAULT \\\'\\\', PRIMARY KEY (`s_id`) ); -- 课程表 CREATE TABLE `Course` ( `c_id` VARCHAR(20), `c_name` VARCHAR(20) NOT NULL DEFAULT \\\'\\\', `t_id`

    2024年02月09日
    浏览(48)
  • python爬虫——爬取豆瓣top250电影数据(适合初学者)

    爬取豆瓣top250其实是初学者用于练习和熟悉爬虫技能知识的简单实战项目,通过这个项目,可以让小白对爬虫有一个初步认识,因此,如果你已经接触过爬虫有些时间了,可以跳过该项目,选择更有挑战性的实战项目来提升技能。当然,如果你是小白,这个项目就再适合不过

    2024年02月07日
    浏览(82)
  • 【python】爬取酷狗音乐Top500排行榜【附源码】

    英杰社区 https://bbs.csdn.net/topics/617804998     这篇博客将介绍如何使用Python编写一个爬虫程序,从斗鱼直播网站上获取图片信息并保存到本地。我们将使用 request s 模块发送HTTP请求和接收响应,以及 os 模块处理文件和目录操作。         如果出现模块报错         进入控

    2024年02月05日
    浏览(44)
  • [Python练习]使用Python爬虫爬取豆瓣top250的电影的页面源码

    在终端中输入以下代码(直接在cmd命令提示符中,不需要打开Python) 从豆瓣网提供的镜像网站下载requests第三方库 是从国外网站下载,速度慢甚至有时候无法下载 运行代码之后,没反应,无输出结果 可以看一下返回的页面请求状态码是多少: 状态码是 418 ,所有4开头的状态

    2024年01月17日
    浏览(48)
  • Python网页爬虫爬取豆瓣Top250电影数据——Xpath数据解析

    1.1 查看原页面信息 首先打开豆瓣Top250电影页面,其网址是:https://movie.douban.com/top250。 可以发现,该页面展示的电影信息有中英文电影名、导演、主演、上映年份、国籍、电影类型、评分等。 下滑到页面底部,发现第一页有25部电影的数据,并且可以点击页码数实现页面跳转

    2024年02月05日
    浏览(53)
  • python爬虫爬取top250中排名、评分、导演等展示可视化界面

    源代码+4千字报告     需要源代码+数据库+可视化+数据+4千字报告加我qq    

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包