网上搜索爬取微信圈内容,信息量少得可怜,几乎都是第三方库整个微信朋友数量或者微信朋友信息,整个结霸 弄个数据分析。
那么朋友圈内容到底可以爬取吗?
因为工作需要所以摸索了些门道出来。
使用fiddler或者是使用小尿壶(Charles)来进行抓包 几乎是没有什么需要得信息得。或者是使用mitmproxy进行拦截 也是无用得。微信对外得接口少之又少,但有一点是微信公众号可以使用这些获取到需要得内容,具体得有时间在写一篇获取公众号文章得博客,公众号文章抓取有几个渠道可以参考:搜狗微信、python有个第三方库获取得内容和搜狗微信得一个样,微信公众平台有接口可以获取到公众号内容。
言归正传接着朋友圈内容
采用得方法就是 python + appium + selenium
也可以使用 模拟器自带得操作录制,进行记录你得自动化操作 可以省去 appium得配置 直接自动化吧,这是个简便得土方法太low
apium得安装与使用 在这就不描述了,网上一大堆。
在这里主要就是说一下思路:
import os , re
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# from pymongo import MongoClient
from time import sleep
from processor import Processor
from config import *
class Moments():
def __init__(self):
self.desired_caps = {
'platformName': PLATFORM,
'deviceName': DEVICE_NAME,
'appPackage': APP_PACKAGE,
'appActivity': APP_ACTIVITY,
'noReset': True
self.driver = webdriver.Remote(DRIVER_SERVER, self.desired_caps)
self.wait = WebDriverWait(self.driver, 300)
def login(self):
print('正在登陆中——————')
sleep(5)
login = self.wait.until(EC.presence_of_element_located((By.ID, 'com.tencent.mm:id/drq')))
login.click()
print('*****')
sleep(2)
# 输入手机号
phone = self.wait.until(EC.presence_of_element_located((By.ID, 'com.tencent.mm:id/ji')))
phone_num = input('请输入手机号')
sleep(2)
phone.send_keys(phone_num)
print('点击下一步中')
sleep(2)
button = self.wait.until(EC.presence_of_element_located((By.ID, 'com.tencent.mm:id/ast')))
button.click()
sleep(2)
pass_w = input('请输入密码:')
sleep(2)
password = self.wait.until(EC.presence_of_element_located((By.ID, 'com.tencent.mm:id/ji')))
password.send_keys(pass_w)
sleep(2)
login = self.driver.find_element_by_id('com.tencent.mm:id/ast')
login.click()
# 提示 是否导入通讯录
tip = self.wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/au9')))
tip.click()
def enter(self):
进入朋友圈
:return:
sleep(10)
print('等待10秒')
print('点击搜索')
moments = self.wait.until(EC.presence_of_element_located((By.XPATH, '//android.widget.TextView[@content-desc="搜索"]')))
moments.click()
print('搜索内容')
sousuo = self.wait.until(EC.presence_of_element_located((By.ID, 'com.tencent.mm:id/ji')))
sleep(2)
sou = input('请输入对方账户:')
sousuo.send_keys(sou)
sleep(2)
print('点击固定用户 ')
cli = self.wait.until(EC.presence_of_element_located((By.ID, 'com.tencent.mm:id/oj')))
cli.click()
sleep(2)
print('点击右上角三个点')
cli3 = self.wait.until(EC.presence_of_element_located((By.ID, 'com.tencent.mm:id/j1')))
cli3.click()
sleep(4)
print('点击个人头像 "')
cli4 = self.wait.until(EC.presence_of_element_located((By.ID, 'com.tencent.mm:id/dnn')))
cli4.click()
sleep(3)
print('点击个人相册进入朋友全')
cli5 = self.wait.until(EC.presence_of_element_located((By.ID, 'com.tencent.mm:id/cww')))
cli5.click()
sleep(2)
def crawl(self):
:return:
sleep(15)
print('开始爬..')
no_list = []
n = 0
while True:
# 当前页面显示的所有数据
# items = self.wait.until(EC.presence_of_all_elements_located((By.ID, 'com.tencent.mm:id/e2s')))
items = self.driver.find_elements(By.ID, 'com.tencent.mm:id/kl')
sleep(3)
# 遍历每条状态
for item in items:
# nickname = item.find_element_by_id('com.tencent.mm:id/aig').get_attribute('text')
imgs = item.find_element_by_id('com.tencent.mm:id/e4y').get_attribute('img')
print(imgs)
exit()
content = item.find_element_by_id('com.tencent.mm:id/mi').get_attribute('text')
p3 = re.findall(r'^禅之路.*', content)
print('1')
if p3 != []:
texts = p3[0]
#判断文章不在列表内则写入
if texts not in no_list:
no_list.append(texts)
# print(texts)
with open("abc.txt", 'a', encoding='utf-8') as f:
f.write(str(texts) + '\n')
print('写入成功', texts)
except NoSuchElementException:
#下滑700
self.driver.swipe(FLICK_START_X, FLICK_START_Y + FLICK_DISTANCE, FLICK_START_X, FLICK_START_Y)
n += 1
if n == 10 :
print(len(no_list))
def main(self):
# self.login()
# self.enter()
self.crawl()
M = Moments()
M.main()
login 和 enter 得内容主要是登陆进入搜索页面 输入搜索内容然后进入朋友圈这些步骤。 这个步骤可以根据模拟器操作助手来进行简化
crawl 就是简单得循环操作一直向下面滑动,然后获取文本对应内容。
加一些sleep 有些网速会比较慢加载跟不上。
流程就是这么个流程 没有用到什么技术,就是进行简简单单的循环下拉然后获取文本。
模仿
微信
朋友圈
发布动态,输入文字支持文字多少高度自增,有一个最小输入框高度,输入文字有限制,不过这些都很easy!
1. PhotoPicker的使用
这是一个支持选择多张图片,点击图片放大,图片之间左右滑动互相切换的库,同时支持图片删除的库,效果类似
微信
。
(1) 添加PhotoPicker的架包
(2) 使用
选择图片:安卓6.0以后需要在代码中添加读写sd卡和相机的权限 当然清单文件中也需要添加的
PhotoPicker.builder()
.setPhotoCount(maxPhoto) //设置最多选择的图片数量
.setShowCamer
这里使用python-uiautomator2操控手机,只支持安卓手机,具体准备工作可以参考博文:手机自动化测试(准备篇)
首先,导入第三方库:
import uiautomator2 as u2
import time
构造储存数据的类
通过使用安卓下的Xposed框架实现从
微信
安卓版上抓取
朋友圈
数据因为
微信
朋友圈
很火热,很多小伙伴想抓取
微信
朋友圈
数据,但是就是找不到好的办法,今天小编就来与大家分享一下用Xposed框架可以抓取
微信
朋友圈
数据,供大家参考一下。希望能够帮到大家。因
微信
朋友圈
为私有协议,从
抓包
上分析
朋友圈
数据几乎不可能,目前也尚未找到开源的抓取
朋友圈
的脚本。于是尝试通过使用安卓下的Xposed框架实现从
微信
安卓版上抓...
再看文章之前,希望大家先打开自己的
微信
点到
朋友圈
中去,仔细观察是不是发现
朋友圈
里的有个“九宫格”的图片区域,点击图片又会跳到图片的详细查看页面,并且支持图片的滑动和缩放?这个功能是不是很常用呢?!那么我今天正好做了这个Demo,下面为大家讲解一下。首先按照惯例先看一下效果图吧,尤其不会录制gif动画(哎~没办法,模拟器不支持多点触控,刚好我的手机又没有Root,不能录屏,悲催啊,大家见谅,想要看真实效果的话,烦请移到文章最下方转载文章中进行源码下载,点击下载源码,运行后再看效果哈~~),这里先就拿几张静态的图片顶替一下好了。见谅!
效果嘛,将就着看吧!实在看不明白就想想
微信
Appium
爬取
微信
朋友圈
接下来,我们将实现
微信
朋友圈
的
爬取
。
如果直接用 Charles 或 mitmproxy 来监听
微信
朋友圈
的接口数据,这是无法实现
爬取
的,因为数据都是被加密的。而 Appium 不同,Appium 作为一个自动化测试工具可以直接模拟 App 的操作并可以获取当前所见的
内容
。所以只要 App 显示了
内容
,我们就可以用 Appium 抓取下来。
本节我们以 ...
转自:https://blog.chionlab.moe/2016/01/22/use-xposed-to-crawl-wechat-moments/?utm_source=tuicool&utm_medium=referral
因
微信
朋友圈
为私有协议,从
抓包
上分析
朋友圈
数据几乎不可能,目前也尚未找到开源的抓取
朋友圈
的脚本。博主于是尝试通过使用安卓下的Xposed框架实现从
微信
安卓版上抓
分析相关功能所抓取的数据包和
完
整大作业报告(word版)均已上传至Wireshark
抓包
分析
微信
功能----tcp/ip选修课期末大作业-网络监控文档类资源-CSDN文库
适合Wireshark入门的小伙伴们或者赶计算机网络期末大作业无从下手的uu们。
铁汁们,请放心食用!加油吧,期末人!开卷,绝不开摆!
一、设计和实现对流行手机网络应用的业务分析
二、网络认证、业务、传输过程分析与问题排除
1、题目要求
2、实验环境
3.实验报告
3.1虚拟AP配置过程
3.2 wireshar
前言金九银十,又是一年跑路季。9月中旬离职,在上周面试了有7家。其中一家是优居网,这次面试过程也是比较有趣的经历,因为面试官基本不问前端的问题,有被毒打到。后面才了解到面试官是全栈偏后端的。所以
这篇
分享对于前端面试可能用处不大,小伙伴就当是看个热闹拓展知识。一面浏览器输入url后会经历什么这题也是老经典题目了,相信不少小伙伴也看过相关的文章。大概过程是:DNS解析ip根据ip对服务器发送连接请求三...
使用fiddler来
抓包
:
需要先做一些简单的准备工作:
一台带有无线网卡的PC或者笔记本电脑,然后将电脑和手机连接到同一个Wi-Fi网络中,并且保证二者是在同一个ip网段内的;
在电脑上安装 Fiddler;
打开Fiddler在菜单栏中点击 Tools - Fiddler Options - Connections 中按照如下配置后重启下fiddler:
很好理解,即允许远程设备...
最后,得到一个链接,里面用相册模板显示了自己的
朋友圈
内容
;
最开始听起来觉得很牛逼,心想这款产品是怎么拿到个人的
朋友圈
数据的,直到看到它的使用流程首先需要添加
微信
好友,瞬间就笑着明白了。
其实,
朋友圈
一直是很多人的爬虫想要采集的领地。
在之前,
朋友圈
只能在手机或Pad上查看,要想获取
朋友圈
的数据,要么
最近初学Python,写爬虫上瘾。爬了豆瓣练手,又爬了公司的论坛生成词云分析年度关键词。最近琢磨着2017又仅剩两月了,我的年度关键词是啥?
所以自然想到
爬取
下自己的
微信
朋友圈
,来个词频分析,生成属于自己的年度关键词词云。
朋友圈
的
爬取
是非常有难度的,因为
微信
根本没有暴露API入口去
爬取
数据。
但它山之石,可以攻玉。
通过各...