嗯,今天是个好日子,懂得都懂,不懂得看热搜,我不好说太多~

话不说多,我们直接来看看我大天朝人民有多高兴!


我们以围脖为例

首先我们打开评论,点击右键选择检查或者按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采集今日全网热门话题评论,看看大家有多高兴相关推荐

  1. JS逆向教程:Python采集今日头条视频

    最近在做今日头条文章数据抓取的过程中,发现视频地址的获取较为复杂.在源码与浏览器配合下发现对应的解决思路,故此记录一下. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语 ...

  2. python爬取新浪微博热门话题保存到excel等文件

    第一步 在网页上登录新浪微博,获取登录cookie 先把它复制好先,进行第二步 第二步 废话不多说,直接上代码,把刚刚复制好的值,赋给co变量 # -*- coding: utf-8 -*- &quo ...

  3. python和java哪个-Java和Python现在都很热门,哪个更有前途?

    Java和Python现在都很热门,哪个更有前途? 要弄明白这两种语言更有有前途,丁哥先分析一下这两种语言(Java和python)的不同 . 第1个区别就是数据类型的声明. 这两种语言都是面向对象编 ...

  4. Python分析热门话题“不生孩子的人后来都怎么了”,看看丁克家庭最后都怎么样了...

    随着三胎政策的开放,人们对于生娃的讨论也逐渐热烈了起来,经常能够在各大社交媒体当中看到相关的话题,而随着时间慢慢地流逝,中国的首批"丁克家庭"已步入晚年,而相关的话题"那 ...

  5. python爬取b站评论_学习笔记(1):写了个python爬取B站视频评论的程序

    学习笔记(1):写了个python爬取B站视频评论的程序 import requests import json import os table='fZodR9XQDSUm21yCkr6zBqiveY ...

  6. python采集代理ip_Python采集代理ip并判断是否可用和定时更新的方法

    网上有很多免费的ip地址,都是可以使用的,但是如果手动来获取太麻烦,这里通过Python自动抓取,可以批量获取. 代码如下: # -*- coding: utf-8 -*- import re imp ...

  7. python与java前景-Java和Python现在都很热门,哪个更有前途?

    Java和Python现在都很热门,哪个更有前途? 要弄明白这两种语言更有有前途,丁哥先分析一下这两种语言(Java和python)的不同 . 第1个区别就是数据类型的声明. 这两种语言都是面向对象编 ...

  8. python采集小说网站完整教程(附完整代码)

    python 采集网站数据,本教程用的是scrapy蜘蛛 1.安装Scrapy框架 命令行执行: pip install scrapy 安装的scrapy依赖包和原先你安装的其他python包有冲突话 ...

  9. Python大数据-电商产品评论情感数据分析

    目录 一.项目背景 二.项目目标 三.分析方法与分析过程 四.数据清洗 数据抓取 评论去重 分词 停用词 词云图绘制 五. 数据分析 评论数据情感倾向分析 匹配情感词 修正情感倾向 LDA模型进行主题 ...

最新文章

  1. java 给字典类型赋值_java使用forEach填充字典值
  2. Linux有哪些目录命令,linux最常用的20个命令有哪些
  3. win7系统下VS2015中CUDA8.0调试程序问题
  4. win11资源管理器历史搜索记录如何删除 Windows11禁用资源管理器历史搜索记录的设置方法
  5. 安卓activity生存周期的onCreate、onRestoreInstanceState、onRestart、onStart、onResume、onPause、onStop、onDestroy
  6. CodeWithMosh--mysql 学习笔记(3)
  7. Entity Framework 异常档案
  8. 代码修改之后MSbuild编译不出最新的dll解决方法
  9. 压缩感知重构算法之OMP算法---python实现
  10. STM32F205 HAL库 RTC软件复位后不准
  11. 汉字、图形,Zebra打印机完全解决方案
  12. 网络工程师 第8章 网络安全
  13. 两个最热门的BI软件:Tableau和Finereport
  14. chunxunnet
  15. 翻转课堂融入计算机课,【计算机基础论文】大学计算机基础翻转课堂的构建思路(共3745字)...
  16. 公安部:河南特大套路贷受害人超95%为在校大学生
  17. 语句摘抄——第12周
  18. laydate设置起始时间,laydate设置开始时间和结束时间
  19. phpstudy打不开localhost
  20. 好嗨游戏 || 20款全世界最佳移动RPG角色扮演游戏(下)

热门文章

  1. 浅析Nature Communications和Scientific Reports
  2. 女人常干的十二件事。男人看完笑。女人看完脸红
  3. spring3.2入门到大神(备java基础、jsp、servlet,javaee精髓)-任亮-专题视频课程
  4. 写出1~1000内5的倍数
  5. 计算机火车票购票系统实训报告,软件工程实验火车票自动售票系统分析报告报告材料.docx...
  6. Linux单双引号嵌套引发的小问题
  7. 离散数学——集合论(一)
  8. Web前端学习笔记——JavaScript之数组、函数、作用域
  9. java从FTP(FileZilla Server)下载文件
  10. 抄袭处理通报!智源抄袭门:2处抄袭4处引用不规范,相关责任人均已主动离职......