Python采集C站热榜数据实战示例

目录
  • 前言
  • 功能实现
  • 解析数据
  • 保存数据
  • 总结

前言

大家好,我们今天来爬取c站的热搜榜,把其文章名称,链接和作者获取下来,我们保存到本地,我们通过测试,发现其实很简单,我们只要简单获取数据就可以。没有加密的东西。

功能实现

我们话不多说,我们先找到url,也就是请求地址。我们代码如下:

url = 'https://blog.csdn.net/phoenix/web/blog/hot-rank?page=0&pageSize=25&type='
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'}
res = requests.get(url, headers=headers)

我们这里首先定义了一个 url 变量,它表示要访问的 URL。然后,它定义了一个 headers 变量,其中包含了一些 HTTP 请求头信息,如 User-Agent 表示 HTTP 请求的 User-Agent。最后,它使用 requests.get() 函数发送 HTTP GET 请求,并将 headers 变量作为参数传递给该函数。

解析数据

我们获取到了内容,接下来就是解析数据,我们不难发现这个是一个json数据,我们直接取值就好了,我们来看看代码怎么写。

datas = res.json()['data']
for data in datas:
    period = data['period']
    nickName = data['nickName']
    articleTitle = data['articleTitle']
    articleDetailUrl = data['articleDetailUrl']
    viewCount = data['viewCount']
    commentCount = data['commentCount']
    favorCount = data['favorCount']
    hotRankScore = data['hotRankScore']
    print(period,nickName,articleTitle,avatarUrl,viewCount,favorCount,commentCount,hotRankScore)

我们将从 res.json() 中获取 data 数据,并将其存储在 datas 变量中。res.json() 返回的是一个包含多个字典的对象,每个字典代表一个数据。

在这个例子中,res.json() 返回的字典中的 data 字段的值为 [{'period': '1', 'nickName': '', 'articleTitle': '', 'articleDetailUrl': '', 'viewCount': '', 'commentCount': '', 'favorCount': '', 'hotRankScore': '0.08536632385314886', 'avatarUrl': 'null', 'viewCount': '0', 'favorCount': '0', 'commentCount': '0', 'hotRankScore': '0.08536633735229816'}],我们使用这个数据来遍历 datas 变量中的每个字典。

在每个字典中,我们使用 data 字段的值来获取期数、昵称、标题、详细URL、访问次数、评论次数、喜欢次数、热门排名分数。

保存数据

now_time =time.strftime('%Y-%m-%d-%H-%M',time.localtime(time.time()))
f = open(f'{now_time}热榜数据.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['日期', '姓名', '文章标题', '文章链接', '浏览量',
'评论量', '收藏量', '热榜值'])
csv_writer.writeheader()

我们首先打开一个名为 data.csv 的文件,并指定使用 a 模式打开文件。然后,使用 csv.DictWriter() 函数创建一个 CSV 写入器,并指定要写入的列名。在这个例子中,我们指定了 fieldnames 参数,它包含了我们要写入的列名。

接下来,我们使用 csv_writer.writeheader() 方法写入列名。这个方法会将列名写入文件的第一行。

最后,我们使用 csv_writer.writerow() 方法写入数据。

我们先写入字典。

dit = {'日期': period, '姓名': nickName, '文章标题': articleTitle, '文章链接': articleDetailUrl, '浏览量': viewCount,
'评论量': commentCount, '收藏量': favorCount, '热榜值': hotRankScore}
print(dit)
csv_writer.writerow(dit)

这段代码创建了一个字典dit,其中包含了每个元素的值。然后,它使用csv_writer.writerow()方法将字典写入CSV文件中。

总结

以上就是Python采集C站热榜数据实战示例的详细内容,更多关于Python采集C站热榜数据的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python采集C站高校信息实战示例

    目录 前言 功能实现 内容获取 总结 前言 大家好,我们今天来爬取c站的高校名单,把其高校名单,成员和内容数获取下来,不过,我们发现这个网站比我们平时多了一个验证,下面看看我是怎么解决的. 功能实现 话不多说,我们和平时一样,发送我们的请求,按照平时,我们看看代码怎么写. url = 'https://bizapi.csdn.net/community-cloud/v1/homepage/community/by/tag?deviceType=PC&tagId=37' headers = { '

  • Python采集情感音频的实现示例

    目录 前言 发送请求 获取数据 解析数据 保存数据 总结 前言 我最近喜欢去听情感类的节目,比如说,婚姻类,我可能老了吧.我就想着怎么把音乐下载下来了,保存到手机上,方便我们业余时间去听. 发送请求 首先,我们要确定我们的目标网址,我们想要获取到每一个音频的地址. 我们发送请求,获取网页源代码.我们相信大家这里的代码都会写了. url = 'https://www.ximalaya.com/album/37453303' headers = { 'User-Agent': 'Mozilla/5.

  • Python采集二手车数据的超详细讲解

    目录 数据采集 发送请求 明确需求: 解析数据 保存数据 总结 数据采集 XPath,XML路径语言的简称.XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言.XPath主要用于解析XML文档,可以用来获取XML文档中某个元素的位置.属性值等信息.XPath可以用于XML文档解析.XML数据抽取.XML路径匹配等方面. 发送请求 首先,我们要进行数据来源分析,知道我们的需求是什么? 明确需求: 明确采集网站是什么? 明确采集数据是什么

  • Python采集热搜数据实现详解

    目录 功能实现 发送请求 解析数据 获取内容 拓展内容 总结 功能实现 随着互联网的发展,信息的传播越来越快速和便捷.在这个信息爆炸的时代,如何快速获取有用的信息已经成为了一个重要的能力.而爬取网站信息则是获取信息的一种重要方式.本文将介绍如何使用Python爬取百度热搜,并对爬取过程进行详细说明. 其实,这个并不难.现在,看我是如何一步一步获取到数据的. 发送请求 我们首先确定网址,我们先使用开发者工具,定位到我们要的数据.发现,内容就在网页源代码中. urllib = 'https://to

  • Python采集某评论区内容的实现示例

    目录 前言 发送请求 解析数据 总结 前言 我们知道在这个互联网时代,评论已经在我们的生活到处可见,评论区里面的信息是一个非常有趣和有争议的地方.我们今天,就来获取某技术平台的评论,和大家分享一下,我获取数据的过程,也是一个尝试的过程. 发送请求 我们首先,确定我们要获取哪一个文章下面的评论区.我们先使用开发者工具,定位到我们要的数据. 我们通过数据抓取,我们发现,这个平台的评论区数据,放在了一个叫getlist数据包里面了. 我们就不难明白,我们只要请求这个url,在传一个关于文章的参数,我们

  • python爬虫今日热榜数据到txt文件的源码

    今日热榜:https://tophub.today/ 爬取数据及保存格式: 爬取后保存为.txt文件: 部分内容: 源码及注释: import requests from bs4 import BeautifulSoup def download_page(url): headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko

  • 如何用python爬取微博热搜数据并保存

    主要用到requests和bf4两个库 将获得的信息保存在d://hotsearch.txt下 import requests; import bs4 mylist=[] r = requests.get(url='https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6',timeout=10) print(r.status_code) # 获取返回状态 r.encoding=r.apparent_encoding demo

  • Python使用线程来接收串口数据的示例

    如下所示: #!/usr/bin/env python import serial import time import thread class MSerialPort: message='' def __init__(self,port,buand): self.port=serial.Serial(port,buand) if not self.port.isOpen(): self.port.open() def port_open(self): if not self.port.isO

  • 使用Python通过oBIX协议访问Niagara数据的示例

    oBIX 全称是 Open Building Information Exchange,它是基于 RESTful Web Service 的接口的标准,用于构建控制系统.oBIX是在专为楼宇自动化设计的框架内,使用XML和URI在设备网络上读写数据的. 因项目需要使用 Python 对 Niagara 软件中的数据进行读写和控制,所以写了一个该协议的Python版本包,发布在这里:https://pypi.org/project/oBIX/ 使用 pip 安装使用即可: pip install

  • Python采集猫眼两万条数据 对《无名之辈》影评进行分析

    一.说明 本文主要讲述采集猫眼电影用户评论进行分析,相关爬虫采集程序可以爬取多个电影评论. 运行环境:Win10/Python3.5. 分析工具:jieba.wordcloud.pyecharts.matplotlib. 基本流程:下载内容 ---> 分析获取关键数据 ---> 保存本地文件 ---> 分析本地文件制作图表 注意:本文所有图文和源码仅供学习,请勿他用,转发请注明出处! 本文主要参考:https://mp.weixin.qq.com/s/mTxxkwRZPgBiKC3Sv-

  • Python实现爬虫爬取NBA数据功能示例

    本文实例讲述了Python实现爬虫爬取NBA数据功能.分享给大家供大家参考,具体如下: 爬取的网站为:stat-nba.com,这里爬取的是NBA2016-2017赛季常规赛至2017年1月7日的数据 改变url_header和url_tail即可爬取特定的其他数据. 源代码如下: #coding=utf-8 import sys reload(sys) sys.setdefaultencoding('utf-8') import requests import time import urll

  • Python爬虫爬取、解析数据操作示例

    本文实例讲述了Python爬虫爬取.解析数据操作.分享给大家供大家参考,具体如下: 爬虫 当当网 http://search.dangdang.com/?key=python&act=input&page_index=1 获取书籍相关信息 面向对象思想 利用不同解析方式和存储方式 引用相关库 import requests import re import csv import pymysql from bs4 import BeautifulSoup from lxml import e

  • Python爬虫实战演练之采集拉钩网招聘信息数据

    目录 本文要点: 环境介绍 本次目标 爬虫块使用 内置模块: 第三方模块: 代码实现步骤: (爬虫代码基本步骤) 开始代码 导入模块 发送请求 解析数据 加翻页 保存数据 运行代码,得到数据 本文要点: 爬虫的基本流程 requests模块的使用 保存csv 可视化分析展示 环境介绍 python 3.8 pycharm 2021专业版 激活码 Jupyter Notebook pycharm 是编辑器 >> 用来写代码的 (更方便写代码, 写代码更加舒适) python 是解释器 >&

  • 如何使用python爬取知乎热榜Top50数据

    目录 1.导入第三方库 2.程序的主函数 3.正则表达式匹配数据 4.程序运行结果 5.程序源代码 1.导入第三方库 import urllib.request,urllib.error #请求网页 from bs4 import BeautifulSoup # 解析数据 import sqlite3 # 导入数据库 import re # 正则表达式 import time # 获取当前时间 2.程序的主函数 def main(): # 声明爬取网页 baseurl = "https://ww

  • Redis实战之百度首页新闻热榜的实现代码

    目标 利用Redis实现类似百度首页新闻热榜功能. 功能 新闻排行榜以热度为指标降序排序,这里假设热度就是评论数量且统计的热度时间范围以当天为准:根据新闻的时效性,这里假设每15分钟刷新一次新闻榜单. 分析 Zset数据类型:一个有序集合最多 个元素,集合元素有序不可重复,每个元素都会关联一个double类型的分数.元素根据分数从小到大的排序,分数可以重复.zscore命令可以对分数实现增量,且如果该Zset中没有该元素,则会创建该条数据.可以将模块名+当天的时间作为Zset的键,用户评论量作为

随机推荐