本站承诺永不接任何虚假欺骗、联盟广告、弹窗广告、病毒广告、诱导充值等影响用户体验的广告,广告屏蔽插件会影响本站部分功能,还请不要屏蔽本站广告,感谢支持!

当前位置:首页 / 正文

2022-03-19 | 编程技术 | 3252 次阅读 | 等你评论 | 3 次点赞 | 繁体

震惊!某程序员竟通过技术手段掌握 70000 个女生小秘密,然后做出...

常被叫做直男的你,是不是经常困惑于女生的那些小心思,对女生不甚了解?

Alt text

微博榜姐曾经搞过一个话题, “女生哪些小秘密,是很多男生不知道的”

下边竟然有 70000 多条评论!

70000 多个女生的小秘密啊!作为一个什么都不懂的男孩子,你是否好奇呢?

不管你好不好奇,反正我是挺好奇的!

Alt text

相信看了这 70000 多个女生小秘密之后,女朋友再也不会说你是直男了!

但是!像我这种懒人,怎么可能去一条一条翻评论呢

让我们派出懒人神器 Python,一键抓取全部评论,保存到文本,熟读并背诵

只能帮你到这了,骚年!

#!/usr/bin/env python
# coding=utf-8

# @Time    : 2022/3/19 20:10
# @Author  : wangtwothree
# @Site    :
# @File    : 爬微博评论.py
# @Software: PyCharm
import requests
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__":
    # 设置user-agent来进行伪装,简单突破微博反爬限制
    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'
    }
    # 手机端网页!手机端网页!手机端网页!
    # 手机版微博评论网址
    url = 'https://m.weibo.cn/comments/hotflow?id='
    # 要爬取的微博id  https://m.weibo.cn/detail/4478512314460101
    weibo_id = '4478512314460101'
    # 设置爬取评论量,爬取量在第X组,爬取时会爬取下来该组的数据,所以最终数据可能会大于number,一般是个整10的数
    number = 1000
    # 数据抓取主逻辑
    bcpl(weibo_id, url, headers, number)

标签: python骚操作爬虫微博

猜你喜欢
白嫖移动,联通,电信手机短信通知
无论在生活中或者工作中,对于一些比较紧急的事情,可能需要发送个通知!比如:自建的服务器突然宕机,如何自动发短信通知运维主管?后台服务日志大量报错如何第一时间发短信通知码农geigei?类似的情景...
通用的检测到广告屏蔽插件进行弹窗提示实现方法
用的 js 方法来检测,按理说所有博客都能使用,就是在打开网页的时候进行一次判断。如果发现没有加载广告代码,就会出来一个弹窗来提示浏览者将本站加到广告拦截插件的白名单里面。别喷我,个人站长经营实...
如何找回微信已过期文件教程
现在基本人人都会使用微信,微信里面保存着很多文件。但是过段时间去看,你可能由于当时没有保存或者根本就没有点开过,微信文件名称显示红色,这表示已经过期了。难道我们要再问别人重发一遍吗?这可能会有点...
局域内网的服务器利用个人电脑做跳板机访问互联网
公司内网的服务器均不连公网(互联网),问题来了:现在服务器上需要安装一些软件怎么办?目前一般都是编译安装!先将软件在外网机器上下载好,然后再复制到服务器内,编译安装!这种方式缺点就是比较麻烦,编...
ssh-chat- SSH命令行下聊天摸鱼服务
ssh-chat 是一个使用 Go 语言编写的定制 SSH 服务器,当你连到该服务器时就会进入聊天模式,就好像以前的终端 BBS 系统一样。官方 Github: https://github.c...
Python小技巧之不用GUI,照样实现图形界面
小王平常的工作是做数据处理的,手中自然握有大量的数据,在日常工作中经常需要根据业务的需求提取相应的数据,有些需求是固定的,写好脚本之后只要定期提取数据就行了。但是,像我这么懒的人,这种工作怎么可...
据传宝塔面板后台会上传服务器上运行的网站信息
近期有网友根据 Github 上公开的源代码,发现宝塔面板会收集如下信息(信息真假自辩):(1)收集你所在服务器上的域名,并检查域名是否可用;(2)收集面板操作日志包括时间、用户ip、请求方式、...
让Python在退出时强制运行一段代码
设想这样一个场景,你要给一个项目开发测试程序,程序开始运行的时候,会创建初始环境,测试完成以后,会清理环境。 这段逻辑本身非常简单: ``` setup() test() clean()
JavaScript + imgur API 上传图片
![](https://cdn.wangtwothree.com/imgur/jgGhE5d.jpg) 上图如无法正常显示则以下方法可能已失效! 大致比较了一下,支持 API 上传的图床,国内
NUC8黑苹果更新OpenCore引导教程
鉴于本人的苹果笔记本年代久远,又想用最新的系统,所以早早就入手了 NUC8,并且成功安装了 macOS,使用 OC 引导,由最初的 macOS Catalina 10.15.7 陆续升级到了 macO
(首次提交评论需审核通过才会显示,请勿重复提交)