今天是个好日子,让我们用Python采集今日全网热门话题评论,看看大家有多高兴
嗯,今天是个好日子,懂得都懂,不懂得看热搜,我不好说太多~
话不说多,我们直接来看看我大天朝人民有多高兴!
我们以围脖为例
首先我们打开评论,点击右键选择检查或者按F12,打开开发者工具。
选择network ,但是这时候咱们是没有数据的,所以需要刷新一下。
然后点击 fetch/XHR ,点击第四个链接
点击右侧 preview ,依次展开,就可以看到评论/ID/账号昵称等等信息。
点击headers ,request url的链接,就是本次咱们要获取数据的链接,先复制上。
那咱们开始写代码
首先导入数据请求模块
import requests
然后将url 粘贴进来
url = 'https://m.weibo.cn/comments/hotflow?id=4788920581098454&mid=4788920581098454&max_id_type=0'
加上headers伪装一下请求头,防止反爬,这里是没做翻页,所以只需要加User-Agent就行了。
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36'
}
发送请求
response = requests.get(url=url, headers=headers)
获取一下数据
import requests
url = 'https://m.weibo.cn/comments/hotflow?id=4788920581098454&mid=4788920581098454&max_id_type=0'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36'
}
response = requests.get(url=url, headers=headers)
print(response.json())
但是现在的数据看起来有点不好看,而且我是获取了整页的,如果只获取单条数据的话,直接点左上角的搜索,把评论复制进去,后面的步骤就一样了。
获取下来了,咱们直接根据键值对提取相应的数据就好了。
首先咱们把data 全部取出来
然后遍历出来
for index in response.json()['data']['data']:
也就是键值对取值,根据冒号左边的内容,提取冒号右边的内容。
首先取的是第一个data
返回的是第二个data的内容,再取第二个data ,返回的就是下面的数据了。
把它遍历出来,使用pprint这个模块打印出来。
import requestsimport pprinturl = 'https://m.weibo.cn/comments/hotflow?id=4788920581098454&mid=4788920581098454&max_id_type=0'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36'
}
response = requests.get(url=url, headers=headers)
print(response.json())for index in response.json()['data']['data']:pprint.pprint(index)break
打印结果
用字典接收一下
dit = {'用户': index['user']['screen_name'],'地区': index['source'].replace('来自', ''),'评论': content,'日期': index['created_at']
}
但是我们只要中文就可以了,所以用正则去匹配出来。
先用index取txt的内容
然后通过正则取它里面所有的文字数据
re.findall('[]',index['text'])
不会写正则的话,可以百度在线正则表达式匹配,把需要匹配的数据复制进去,点匹配中文字符,就全部匹配出来了。
在正则后面加个 + 就会匹配成多个字段
直接把正则复制过来
re.findall('[\u4e00-\u9fa5]+',index['text'])
匹配出来后返回的是列表,那么直接用join 把内容放进去。
content = ''.join(re.findall('[\u4e00-\u9fa5]+', index['text']))
再运行一下
import requestsimport pprinturl = 'https://m.weibo.cn/comments/hotflow?id=4788920581098454&mid=4788920581098454&max_id_type=0'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36'
}
response = requests.get(url=url, headers=headers)for index in response.json()['data']['data']:content = ''.join(re.findall('[\u4e00-\u9fa5]+', index['text']))dit = {'用户': index['user']['screen_name'],'地区': index['source'].replace('来自', ''),'评论': content,'日期': index['created_at']}print(dit)
这效果,duang的一下就出来了
数据得到后,我们再保存在CSV里面去。
这有两种方式
1、第一种 CSV
导入模块
import CSV
CSV 保存
f = open('微博评论.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['用户','地区','评论','日期',
])
csv_writer.writeheader()
2、第二种 pandas 也可以保存
导入模块
import pandas as pd
在response下面加上一个空列表
lis = []
然后把数据内容添加到空列表里面
lis.append(dit)
pandas 保存
pd_data = pd.DataFrame(lis)
pd_data.to_excel('微博评论.xlsx')
实现效果
我这里只爬了一页,所以只有19条数据。
这一条微博下面是有十万条评论的,我就不一一去演示了,大家可以自己去试试。
我整理了2022最新的Python电子书100本、Python基础视频教程一套、各种案例视频、代码等等直接在最下方获取,包括本文完整代码。
兄弟们,来都来了,点个关注呗!
今天是个好日子,让我们用Python采集今日全网热门话题评论,看看大家有多高兴相关推荐
- JS逆向教程:Python采集今日头条视频
最近在做今日头条文章数据抓取的过程中,发现视频地址的获取较为复杂.在源码与浏览器配合下发现对应的解决思路,故此记录一下. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语 ...
- python爬取新浪微博热门话题保存到excel等文件
第一步 在网页上登录新浪微博,获取登录cookie 先把它复制好先,进行第二步 第二步 废话不多说,直接上代码,把刚刚复制好的值,赋给co变量 # -*- coding: utf-8 -*- &quo ...
- python和java哪个-Java和Python现在都很热门,哪个更有前途?
Java和Python现在都很热门,哪个更有前途? 要弄明白这两种语言更有有前途,丁哥先分析一下这两种语言(Java和python)的不同 . 第1个区别就是数据类型的声明. 这两种语言都是面向对象编 ...
- Python分析热门话题“不生孩子的人后来都怎么了”,看看丁克家庭最后都怎么样了...
随着三胎政策的开放,人们对于生娃的讨论也逐渐热烈了起来,经常能够在各大社交媒体当中看到相关的话题,而随着时间慢慢地流逝,中国的首批"丁克家庭"已步入晚年,而相关的话题"那 ...
- python爬取b站评论_学习笔记(1):写了个python爬取B站视频评论的程序
学习笔记(1):写了个python爬取B站视频评论的程序 import requests import json import os table='fZodR9XQDSUm21yCkr6zBqiveY ...
- python采集代理ip_Python采集代理ip并判断是否可用和定时更新的方法
网上有很多免费的ip地址,都是可以使用的,但是如果手动来获取太麻烦,这里通过Python自动抓取,可以批量获取. 代码如下: # -*- coding: utf-8 -*- import re imp ...
- python与java前景-Java和Python现在都很热门,哪个更有前途?
Java和Python现在都很热门,哪个更有前途? 要弄明白这两种语言更有有前途,丁哥先分析一下这两种语言(Java和python)的不同 . 第1个区别就是数据类型的声明. 这两种语言都是面向对象编 ...
- python采集小说网站完整教程(附完整代码)
python 采集网站数据,本教程用的是scrapy蜘蛛 1.安装Scrapy框架 命令行执行: pip install scrapy 安装的scrapy依赖包和原先你安装的其他python包有冲突话 ...
- Python大数据-电商产品评论情感数据分析
目录 一.项目背景 二.项目目标 三.分析方法与分析过程 四.数据清洗 数据抓取 评论去重 分词 停用词 词云图绘制 五. 数据分析 评论数据情感倾向分析 匹配情感词 修正情感倾向 LDA模型进行主题 ...
最新文章
- java 给字典类型赋值_java使用forEach填充字典值
- Linux有哪些目录命令,linux最常用的20个命令有哪些
- win7系统下VS2015中CUDA8.0调试程序问题
- win11资源管理器历史搜索记录如何删除 Windows11禁用资源管理器历史搜索记录的设置方法
- 安卓activity生存周期的onCreate、onRestoreInstanceState、onRestart、onStart、onResume、onPause、onStop、onDestroy
- CodeWithMosh--mysql 学习笔记(3)
- Entity Framework 异常档案
- 代码修改之后MSbuild编译不出最新的dll解决方法
- 压缩感知重构算法之OMP算法---python实现
- STM32F205 HAL库 RTC软件复位后不准
- 汉字、图形,Zebra打印机完全解决方案
- 网络工程师 第8章 网络安全
- 两个最热门的BI软件:Tableau和Finereport
- chunxunnet
- 翻转课堂融入计算机课,【计算机基础论文】大学计算机基础翻转课堂的构建思路(共3745字)...
- 公安部:河南特大套路贷受害人超95%为在校大学生
- 语句摘抄——第12周
- laydate设置起始时间,laydate设置开始时间和结束时间
- phpstudy打不开localhost
- 好嗨游戏 || 20款全世界最佳移动RPG角色扮演游戏(下)
热门文章
- 浅析Nature Communications和Scientific Reports
- 女人常干的十二件事。男人看完笑。女人看完脸红
- spring3.2入门到大神(备java基础、jsp、servlet,javaee精髓)-任亮-专题视频课程
- 写出1~1000内5的倍数
- 计算机火车票购票系统实训报告,软件工程实验火车票自动售票系统分析报告报告材料.docx...
- Linux单双引号嵌套引发的小问题
- 离散数学——集合论(一)
- Web前端学习笔记——JavaScript之数组、函数、作用域
- java从FTP(FileZilla Server)下载文件
- 抄袭处理通报!智源抄袭门:2处抄袭4处引用不规范,相关责任人均已主动离职......