【爬虫案例】用Python爬取知乎热榜数据!

这篇具有很好参考价值的文章主要介绍了【爬虫案例】用Python爬取知乎热榜数据!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 一、爬取目标
  • 二、编写爬虫代码
  • 三、同步讲解视频
    • 3.1 代码演示视频
    • 3.2 详细讲解视频
  • 四、获取完整源码

一、爬取目标

您好,我是@马哥python说,一名10年程序猿。
本次爬取的目标是:知乎热榜
【爬虫案例】用Python爬取知乎热榜数据!

共爬取到6个字段,包含:

热榜排名, 热榜标题, 热榜链接, 热度值, 回答数, 热榜描述。

用CHrome浏览器,右键打开开发者模式,选择:网络->XHR这个选项,重新点击一下【热榜】按钮,或者切换到【视频】页再切换回【热榜】页。
操作过程,如下图所示:
【爬虫案例】用Python爬取知乎热榜数据!
下面,开始编码爬虫代码。

二、编写爬虫代码

首先,导入需要用到的库:

import requests
import pandas as pd

定义一个请求地址,即上图中的目标链接地址:

# 接口地址
url = 'https://www.zhihu.com/api/v3/feed/topstory/hot-lists/total?limit=50&desktop=true'

定义一个请求头,从开发者模式中的Headers->Request Headers中复制下来:

# 构造请求头
headers = {
    'Accept': '*/*',
    'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
    'Accept-Encoding': 'gzip, deflate, br',
    'Host': 'www.zhihu.com',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15',
    'Referer': 'https://www.zhihu.com/hot',
    'Connection': 'keep-alive',
    'Cookie': '换成自己的cookie值',
    'x-ab-pb': 'CgQnB/gMEgIAAA==',
    'x-requested-with': 'fetch',
    'x-zst-81': '3_2.0aR_sn77yn6O92wOB8hPZn490EXtucRFqwHNMUrL8YunpELY0w6SmDggMgBgPD4S1hCS974e1DrNPAQLYlUefii_qr6kxELt0M4PGDwN8gGcYAupMWufIoLVqr4gxrRPOI0cY7HL8qun9g93mFukyigcmebS_FwOYPRP0E4rZUrN9DDom3hnynAUMnAVPF_PhaueTF8Lme9gKSq3_BBOG1UVmggHYFJefYqeYfhO_rTgBSMSMpGYLwqcGYDVfXUSTVHefr_xmBq399qX0jCgKNcr_cCSmi9xYvhoLeXx18qCYEw3Of0NLwuc8TUOpS8tMdCcGuCo8kCp_pbLf6hgO_JVKXwFY2JOLG7VCSXxYqrSBICL_5GxmOg_z6XVxqBLfMvxqYDuf3DOf6GLGhDHCbRxO0qLpTDXfbvxCSAH0BhCmJ4NmRBY8rJwB6MS124SqKuo_ywS8ACtBfqwC8XC9QA3KxCepuuCYXhLyWgNCuwYs',
    'x-zse-93': '101_3_3.0',
    'x-api-version': '3.0.76',
    'x-zse-96': '2.0_CkAT7RdDtmW9PikRDfWa4CZIMx50XeUMQ7r34wP2JRAtFiCKXsSmoxCzrKWi2nJ1'
}

不知如何获取Cookie?参考下图:
【爬虫案例】用Python爬取知乎热榜数据!

向目标地址发送请求(带上请求头),并用json格式接收返回数据:

# 发送请求
r = requests.get(url, headers=headers)
# 用json接收请求数据
json_data = r.json()

定义一些空列表,用于存储数据:

order_list = []  # 热榜排名
title_list = []  # 热榜标题
desc_list = []  # 热榜描述
url_list = []  # 热榜链接
hot_value_list = []  # 热度值
answer_count_list = []  # 回答数

以“热榜标题”为例,解析数据:

for data in data_list:
    # 热榜标题
    title = data['target']['title_area']['text']
    print(order, '热榜标题:', title)
    title_list.append(title)

其他字段同理,不再赘述。

最后,把解析到的数据,存储到Dataframe中,并保存到csv文件里:

# 拼装爬取到的数据为DataFrame
df = pd.DataFrame(
    {
        '热榜排名': order_list,
        '热榜标题': title_list,
        '热榜链接': url_list,
        '热度值': hot_value_list,
        '回答数': answer_count_list,
        '热榜描述': desc_list,
    }
)
# 保存结果到csv文件
df.to_csv('知乎热榜.csv', index=False, encoding='utf_8_sig')

这里需要注意的是,to_csv要加上encoding='utf_8_sig'参数,防止保存到csv文件产生乱码数据。
查看爬取结果:
【爬虫案例】用Python爬取知乎热榜数据!
共50条数据,对应热榜TOP50排名。
每条数据含6个字段:热榜排名, 热榜标题, 热榜链接, 热度值, 回答数, 热榜描述。

三、同步讲解视频

3.1 代码演示视频

代码演示: 【Python爬虫演示】用Python爬知乎热榜数据

3.2 详细讲解视频

讲解教程:【Python爬虫教程】5分钟讲解用Python爬取知乎热榜

四、获取完整源码

get完整源码:【爬虫案例】用Python爬取知乎热榜数据!


我是@马哥python说 ,持续分享python源码干货中!文章来源地址https://www.toymoban.com/news/detail-557752.html

到了这里,关于【爬虫案例】用Python爬取知乎热榜数据!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【爬虫案例】用Python爬取百度热搜榜数据!

    目录 一、爬取目标 二、编写爬虫代码 三、同步视频讲解 四、完整源码 您好,我是@马哥python说,一名10年程序猿。 本次爬取的目标是:百度热搜榜 分别爬取每条热搜的: 热搜标题、热搜排名、热搜指数、描述、链接地址。 下面,对页面进行分析。 经过分析,此页面有XH

    2024年02月13日
    浏览(12)
  • 〖Python网络爬虫实战㉕〗- Ajax数据爬取之Ajax 案例实战

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                 python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月06日
    浏览(24)
  • 〖Python网络爬虫实战㉔〗- Ajax数据爬取之Ajax 分析案例

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                 python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月07日
    浏览(34)
  • 【经典爬虫案例】用Python爬取微博热搜榜!

    目录 一、爬取目标 二、编写爬虫代码 2.1 前戏 2.2 获取cookie 2.3 请求页面 2.4 解析页面 2.5 转换热搜类别 2.6 保存结果 2.7 查看结果数据 三、获取完整源码 您好,我是@马哥python说,一名10年程序猿。 本次爬取的目标是: 微博热搜榜 ​ 分别爬取每条热搜的: 热搜标题、热搜排名

    2024年02月13日
    浏览(16)
  • python爬虫如何写,有哪些成功爬取的案例

    编写Python爬虫时,常用的库包括Requests、Beautiful Soup和Scrapy。以下是三个简单的Python爬虫案例,分别使用Requests和Beautiful Soup,以及Scrapy。 1. 使用Requests和Beautiful Soup爬取网页内容: 2. 使用Requests和正则表达式爬取图片: 3. 使用Scrapy爬取网站: 首先,确保已安装Scrapy: 创建一个

    2024年01月19日
    浏览(47)
  • Python爬虫:一个爬取豆瓣电影人像的小案例

    从谷歌浏览器的开发工具进入 选择图片右键点击检查 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1b38c2a942c441fb8cb545a28bb35015.png 翻页之后发现网址变化的只有start数值,每次变化值为30 Python代码 把爬取的图片全部放到新建的文件夹中存放

    2024年02月10日
    浏览(14)
  • 爬虫案例—京东数据爬取、数据处理及数据可视化(效果+代码)

            使用PyCharm(引用requests库、lxml库、json库、time库、openpyxl库和pymysql库)爬取京东网页相关数据(品牌、标题、价格、店铺等) 数据展示(片段):         京东网页有反爬措施,需要自己在网页登录后,获取cookie,加到请求的header中(必要时引入time库,设置爬取

    2024年02月09日
    浏览(14)
  • Python爬虫案例分享【爬取豆瓣电影排行榜的电影名称和评分】

    注意:在运行此代码之前,请确保已安装 requests 和 beautifulsoup4 库

    2024年01月19日
    浏览(15)
  • python爬虫实战(10)--获取本站热榜

    通过分析,本站的热榜数据可以直接通过接口拿到,故不需要解析标签,请求热榜数据接口 直接请求解析会有点问题,数据无法解析,加上请求头 完整请求代码

    2024年01月16日
    浏览(12)
  • python爬虫实战(8)--获取虎pu热榜

    注意:分析标签,这里加了非意向标签的跳过处理 测试

    2024年01月23日
    浏览(16)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包