当前位置: 首页 > news >正文

爬取微博热榜并将其存储为csv文件

🙌秋名山码民的主页
😂oi退役选手,Java、大数据、单片机、IoT均有所涉猎,热爱技术,技术无罪
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
获取源码,添加WX

目录

  • 前言
  • 1. 热榜前50爬虫
  • 最后


前言

基于大数据技术的社交媒体文本情绪分析系统设计与实现,首先需要解决的就是数据的问题,我打算利用Python 语言的Scrapy、Beautiful Soup等工具抓取一段时间内新浪微博用户对于热点事件的博文之后,按照事件、时间等多种方式进行分类,接着利用正则表达式等工具过滤掉微博正文中的超链接、转发信息、表情符号、广告宣传和图片等无效信息之后,将处理完的文本进行手工标注,最终将标注的文本作为训练语料库。今天的主要工作量就是对数据的获取,进行简单的热榜爬虫、和热点爬虫,热榜爬虫代码进行公开,热点爬虫代码需要的欢迎私信有偿获取。

1. 热榜前50爬虫

所需库:

import requests
from bs4 import BeautifulSoup
import pandas as pd

新浪微博目标网站:
url = ‘https://s.weibo.com/top/summary/’

cookie的获取:
Cookie中包含以下字段:

  • SUB:用户身份认证信息,通常由数字和字母组成。
  • SUBP:用户身份认证信息,通常由数字和字母组成。
  • SINAGLOBAL:用户身份认证信息,通常由数字和字母组成。
  • _s_tentry:用户访问来源网站的信息。
    在这里插入图片描述
cookie = '你自己的cookie'

常规爬虫代码

# 获取网页响应,对网页响应进行编码
response = requests.get(url, headers=headers)
response.encoding = response.apparent_encoding
html = response.text# 将网页文本使用Beautifulsoup解析
soup = BeautifulSoup(html, 'html.parser')# allnews存放热搜前50的新闻和热度,形式为{'新闻':'热度'}字典
all_news = {}

微博热榜分析
在这里插入图片描述


# 定位网页元素,观察到热搜新闻位于'td'元素下,class为'td-02'
for news in soup.find_all('td', class_='td-02')[1:]:text = news.text.split('\n')[1].strip()if news.text.split('\n')[2].strip() == '':continueelif news.text.split('\n')[2].strip()[0].isdigit():hot = news.text.split('\n')[2].strip()else:hot = news.text.split('\n')[2].strip()[2:]all_news[text] = hot

存储为csv


# 将字典转为DataFrame,并将DataFrame保存为csv文件
df = pd.DataFrame.from_dict(all_news, orient='index', columns=['热度'])
df.index.name = '新闻'
df.to_csv('weibo_hot.csv', encoding='utf-8-sig')

结果展示

在这里插入图片描述

最后

如果本文对你有所帮助,还请三连支持一下博主!
请添加图片描述

http://www.lryc.cn/news/188281.html

相关文章:

  • 国庆中秋特辑(八)Spring Boot项目如何使用JPA
  • 用jad反编译工具查看java接口相关的默认修饰符
  • axios的get请求时数组参数没有下标
  • bochs 对 Linux0.11 进行调试 (TODO: 后面可以考虑集成 vscode+gdb+qemu)
  • 一文告知HTTP GET是否可以有请求体
  • 防止SQL注入攻击的综合解决方案
  • MapReduce(林子雨慕课课程)
  • PHP聊天系统源码 在线聊天系统网站源码 后台自适应PC与移动端
  • 算法题:买卖股票的最佳时机 II (贪心算法解决股票问题)
  • Redis-持久化机制
  • 【LeetCode热题100】--155.最小栈
  • Allegro 17.2如何直接更新元件封装?
  • 高效数据管理:Java助力实现Excel数据验证
  • Easysearch Chart 0.2.0都有哪些变化
  • RV1126-RV1109-进入uboot的按键和名字显示-HOSTNAME
  • 学习vue-router
  • Python爬虫提高排名
  • SQL获取正数第N个或倒数第N个数据
  • 链表(2)——带头双向循环链表
  • C语言 函数指针
  • F. Vasilije Loves Number Theory
  • electron打包后主进程下载文件崩溃
  • Spring实例化源码解析之Custom Events下集(九)
  • python numpy库关键函数说明
  • 【Linux C】Linux如何执行一个程序(程序存储空间、系统调用、内核调用)
  • IP协议总结
  • 微信支付v2
  • tcpdump(二)命令行参数讲解(一)
  • 10_8C++
  • JVM篇---第七篇