element 保存 点击链接_保存微信表情!
。
微信真是太弱鸡了!
虽然微信没有把表情保存到手机的功能,但是作为计算机学生肯定是有办法把表情取出来的。有网页微信的存在,加上爬虫中常用的抓包操作,很容易就可以把网页微信收到的微信保存下来。
这用爬虫很容易就能实现。
并且,即使不写爬虫,只需要懂一点骚操作,就能通过网页微信和浏览器自带的抓包功能,把微信表情保存到电脑。然后,通过电脑发送到手机。
00
—
低级操作
打开网页微信,点击文件传输助手。先右键检查打开开发者模式。再从手机上发几个表情到文件传输助手。
可以看到,有个src="/cgi-bin/mmwebwx-bin/webwx...",应该可以再进一步找到图片源网址。过去看一眼。
前面还有https://wx2.qq.com。跳转过去确认一下。
最后手动保存到电脑就搞定!gif也完全一样。
太简单了。。比我想象中简单多。。
01
—
高级操作
手动操作已经学会了,现在参照着来写出程序。
02
—
登陆
先导入需要的模块
from selenium import webdriverfrom selenium.webdriver.support import expected_conditions as ecfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.common.by import Byfrom selenium.common.exceptions import TimeoutExceptionfrom pyquery import PyQuery as PQimport timeimport requests
然后,打开浏览器,最大化,打开网页。
url = "https://wx.qq.com/"browser = webdriver.Chrome()browser.maximize_window()wait = WebDriverWait(browser, 100)browser.get(url) # 打开网页
跳转到登陆页面,这部分就要用手机了。所以先input(),让程序先不要执行下面的语句,等输入回车再执行。用手机扫码登陆完成之后,再按下回车,继续。为了照顾一下浏览器的龟速,程序再停1秒。
input()time.sleep(1)
接下来要点击文件传输助手,转到和文件传输助手的聊天窗口。
就用来定位它。
filehelper = wait.until( ec.presence_of_element_located((By.CSS_SELECTOR, '[]')))filehelper.
登陆部分就算完成了。
03
—
找表情源网址
先input(),等手机发表情过来了再处理。
继续找。
这就是收到的三条消息,再往里一层层找,把表情源网址扒出来。
sticker_url是表情源网址。ext是文件后缀,根据表情类型选择是jpg还是gif。
input()wait.until( ec.presence_of_element_located((By.CSS_SELECTOR, '[ng-repeat="message in chatContent"]')))html = PQ(browser.page_source)chat_contents = html('[mm-repeat="message in chatContent"] [ng-repeat="message in chatContent"]').items()count = 0for chat_content in chat_contents: temp = chat_content.find('[ng-style="message.MMImgStyle"]') sticker_url = "https://wx2.qq.com" + temp.attr("src") response = requests.get(sticker_url) ext = ".jpg" if "jpg" in response.text else ".gif" file_name = str(count) + ext count += 1 with open(file_name, "wb") as f: f.write(response.content)
多次测试都发现response获得的都是空内容?!多次检查我确认了代码是没问题的。有问题的是网页微信。。
04
—
?
sticker_url必须要和网页微信在同一个浏览器下才能打开!
比如,用chrome登陆网页微信。用firefox尝试打开sticker_url,就算sticker_url正确,也是得不到表情的。
或者打开一个新的chrome,也不行。必须和网页微信同一个浏览器才能l得到表情图。
手动操作,同样有这个限制。不信你就试一下。。
而requests.get(sticker_url)就相当于用其他的浏览器打开sticker_url,所以得到空内容。手动操作都做不到,程序自然也就做不到了。这么一搞,爬取难度就大大增加。
尝试了几个办法,都没有解决这个问题。最后只能认怂了。。
05
—
其他
我认为这个限制只是表象。最关键的原因是网页微信还有加密和识别的过程。把这个过程搞懂了还是可以爬的。既然程序干不了那就只能自己动手丰衣足食了。
06
—
往期瞎写
Python抢课是怎么实现的?
一次艰难的爬虫
MATLAB之结构化程序与函数
element 保存 点击链接_保存微信表情!相关推荐
- 【邮件邮箱】点击链接调起微信跳转到公众号、添加好友如何实现?
大家在营销引流时希望发送邮件给用户,收到邮件后对方点击链接 调起微信 跳转到公众号.添加好友页面达到很好的转化效果:我们使用如下方法达到目的,我们先看下效果. 一.外链创建方法 1.薇搜索天天外链(公 ...
- 今日头条点击链接跳转微信公众号、加好友、小程序的方法(今日头条引流到微信公众号)
有时候我们可以在今日头条发布文章或评论时可以留下链接,当用户点击链接后跳转公众号.加好友界面:我们可以使用如下方法 一.使用工具 大家可以使用如下工具创建链接. 1.天天外链官网 二.可以生成链接的页 ...
- python去掉json中的转义符_企业微信表情符自动转义怎么用?企业微信电脑版这样做...
企业微信有一个独特的功能叫做"表情符自动转义",其实通俗点说就是表情的快捷键,设定了这个之后,可以在键盘上点击这个符号,而在企业微信电脑版上显示的就是对应的表情,对于快速恢复很 ...
- mysql 过滤emoji表情_过滤微信表情/emoji表情
微信表情/emoji表情是个麻烦的东西,即使你能存储,也不一定能完美显示.在iOS以外的平台上,例如PC或者android.如果你需要显示emoji,就得准备一大堆emoji图片并使用第三方前端类库才 ...
- a href点击无效_关于微信中a链接无法跳转问题
[问题] 微信页面开发时,各个主页之间的跳转,完全是通过a链接进行的,但是来回跳转几次,再次从其他主页面跳回首页的时候,微信头部出现了跳转加载进度条,但是就是不跳转,也没有任何反应 [范围] 只出现在 ...
- python模拟百度搜索点击链接_用 Python 获取百度搜索结果链接
前言 近期有许多项目需要这个功能,由于Python实现起来比较简单就这么做了,代码贴下来觉得好点个赞吧~ 代码 # coding: utf-8 import os import time import ...
- html点击链接直接加微信群,微信给文字加链接代码分享(原来微信超链接是这样加的)...
相信大家都用过好多的表白神器,所以在这里小编就不给大家展示了,今天只和大家说一个也许大家还没有用过的在微信里的小功能! 超链接 超级链接简单来讲,就是指按内容链接. 超级链接在本质上属于一个网页的一部 ...
- element分页点击事件_关于原生dom事件添加、删除方法的一些拓展
引言 这是一个简单的需求,衍生的思考. 昨天QA提了一个富文本优化的需求,当插入视频和音频时,如果用户同时点击了视频.音频,那么其他的视频或者音频应该停止播放,只有最后一个点击的才会是播放状态. 需求 ...
- word文档保存文件时出错_保存时如何自动创建Word文档的备份副本
word文档保存文件时出错 Backing up your documents is always a good thing to do, but not always something we re ...
最新文章
- Transformer-LS霸榜ImageNet,输入长度提升三倍!极度压缩参数
- CentOS系统快捷方式设置
- 暑假学习日记2013/7/21
- 斐波那契数列c++代码_轮到你了,斐波那契数列!
- image pil 图像保存_如何利用python中的PIL库做图像处理?
- gtest linux 性能测试,Linux下Gtest的安装与使用
- 大学计算机课程进制的转换教程,交大计算机课程(1):各种进制转换
- 在c语言中作为字符串结束标志是什么,字符串的结束标志是什么?
- 最新联发科Helio X30(mt6799)芯片处理器详细资料(datasheet)
- UIAutomatorViewer初体验
- 接口文档——Swagger
- jQuery获取(设置)自定义属性值
- js小技巧:根据身份证号,获取身份信息。如性别、生日、年龄
- RedHat终端中文乱码解决,netterm经常变换颜色的解决
- Verification和Validation傻傻分不清楚?
- 计算机视觉实验室(China)
- LinuxTracing System浅析和eBPF开发经验分享
- WEEK9 作业 B - 东东学打牌
- ArcGIS栅格转面失败 所转面为空 显示原栅格范围有问题
- 带搜索功能的GridView控件