当前位置:
首页 > temp > python入门教程 >
-
为了知道女朋友的小秘密,我用Python采集了微博6万个女生小秘密
由于是第一次谈恋爱,所以呢,对女生不是很了解,今天刚好看到微博榜姐搞了一个“女生哪些小秘密,是很多男生不知道的”,下边竟然有60000条评论!
60000个女生的小秘密啊!作为一个什么都不懂的男孩子,你是否好奇呢?
不管你好奇不好奇,反正我是挺好奇的!
看了60000个女生小秘密,女朋友的小秘密,我都能发现的!
python代码已经封装好了!一款爬取微博手机网页版评论的小程序
"""
当然在学习Python的道路上肯定会困难,没有好的学习资料,怎么去学习呢?
学习Python中有不明白推荐加入交流Q群号:928946953
群里有志同道合的小伙伴,互帮互助, 群里有不错的视频学习教程和PDF!
还有大牛解答!
"""
import requests import json import re # 定义保存评论的函数 def bcpl(weibo_id, url, headers, number): count = 0 #设置一个初始变量count为0来进行计数 with open("微博id" + str(weibo_id) + ".txt", "a", encoding="utf8") as f: #打开一个名为“微博idxxxxxx”的txt文件,编码utf-8 # 当count数量小于预期的number时,进行循环 while count < number: # 判断是不是第一组评论,如果是的话,第一组评论不需要加max_id,之后的需要加 if count == 0: try: url = url + weibo_id + '&mid=' + weibo_id + '&max_id_type=0' web_data = requests.get(url, headers=headers) #F12查看data信息 js_con = web_data.json() #转换一下数据格式 # 获取连接下一页评论的max_id max_id = js_con['data']['max_id'] #max_id在[data]中 print(max_id) comments = js_con['data']['data'] #获得数据中[data]中的[data] for comment in comments: #依次循环获得comments中的数据 comment = comment["text"] #获得[text]下的数据,也就是评论数据 label = re.compile(r'</?\w+[^>]*>', re.S) #删除表情符号 comment = re.sub(label, '', comment) #获得文本评论 f.write(comment + '\n') #写入到文件中 count += 1 #count = count + 1 print("已爬取" + str(count) + "条评论!" ) #显示爬取到第几条 except Exception as e: print("出错了" ,e) continue else: try: url = url + weibo_id + 'max_id=' + str(max_id) + '&max_id_type=0' web_data = requests.get(url, headers=headers) js_con = web_data.json() max_id = js_con['data']['max_id'] comments = js_con['data']['data'] for comment in comments: comment = comment["text"] label = re.compile(r'</?\w+[^>]*>', re.S) comment = re.sub(label, '', comment) f.write(comment+ '\n') count += 1 print("已爬取" + str(count) + "条评论!") except Exception as e: print("出错了" ,e) continue if __name__ == "__main__": headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36' } #设置user-agent来进行伪装,突破微博反爬限制 url = 'https://m.weibo.cn/comments/hotflow?id=' weibo_id = '4478512314460101' # 要爬取的微博id #[url=https://m.weibo.cn/detail/4478512314460101]https://m.weibo.cn/detail/4478512314460101[/url] #打开微博手机端网页[url=https://m.weibo.cn]https://m.weibo.cn[/url],找到要爬取的微博id! #手机端网页!手机端网页!手机端网页! number = 60000 # 设置爬取评论量,爬取量在第X组,爬取时会爬取下来该组的数据,所以最终数据可能会大于number,一般是个整10的数 bcpl(weibo_id, url, headers, number)
来看下都有啥密码:
出处:https://www.cnblogs.com/pythonQqun200160592/p/15160963.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数