【Python爬虫】Scrapy模块爬取微信公众号历史内容——数据分析篇
【Python爬虫】Scrapy模块爬取微信公众号历史内容——抓包篇
【Python爬虫】Scrapy模块爬取微信公众号历史内容——数据分析篇
【Python爬虫】Scrapy模块爬取微信公众号历史内容——Python实战篇
【Python爬虫】Scrapy模块爬取微信公众号历史内容——数据导出篇
打开后打开setting文件把ROBOTSTXT_OBEY设置成True
DOWNLOAD_DELAY = 0.5 这里是每次发送包后的延迟如图
然后我们对上个文章中获取到的链接进行分析这里我用火狐浏览器因为火狐浏览器自带了格式化json数据的功能
can_msg_continue这个为1就是还有数据为0则没有数据了
msg_count数据的条数
next_offset这个值-1就是得到下一个offset的值
general_msg_list是一个json数据我们需要对他进行格式化这也是我们最需要的数据
先用sublime text对这个数据的替换成空然后打开在线Json格式化
进行格式化分析
在把格式化的内容粘贴回sublime进行分析
上图中可以看到datetime就是一个10 ...
【Python爬虫】Scrapy模块爬取微信公众号历史内容——抓包篇
【Python爬虫】Scrapy模块爬取微信公众号历史内容——抓包篇
【Python爬虫】Scrapy模块爬取微信公众号历史内容——数据分析篇
【Python爬虫】Scrapy模块爬取微信公众号历史内容——Python实战篇
【Python爬虫】Scrapy模块爬取微信公众号历史内容——数据导出篇
首先下载Fiddler并设置https捕抓
设置方法打开fd点击Tools->Options->HTTPS
勾选选项出现弹窗选择yes或者是如图
打开微信公众号
打开微信公众号历史记录后滑动页面到底部fd中会捕抓到一个https的请求双击它
点击raw有一个链接可以直接点击浏览器打开
浏览器打开后是这样子的
其中osffset是当前位置,count就是数量
开始offset为0后以10递增count10就代表每次获取十条数目
开始用Python编程爬虫
创建scrapy工程 scrapy startproject projectnameSpider
创建scrapy爬虫文件scrapy genspider projectname 公众号域名
用Pycharm打开
【Python模块】Urllib的使用
我们首先了解一下 Urllib 库,它是 Python 内置的 HTTP 请求库,也就是说我们不需要额外安装即可使用
发送简单的get请求
1234567#python2import urllib2response = urllib2.urlopen('http://www.baidu.com')#python3import urllib.requestres = urllib.request.urlopen('http://www.baidu.com')
1234567import urllib.requesta = urllib.request.urlopen('http://www.baidu.com')print(a.read().decode('gbk', 'ignore'))print(a.status)#状态码print(a.getheaders())#获取所有header返回元组列表print(a.getheader('Set-Cookie'))#获取 ...
【Linux-Python】pip的安装及常用命令
12345678910111213141516wget https://bootstrap.pypa.io/get-pip.pypython get-pip.pyinstall #【 安装包安装 (Install packages.)】download #【 下载下载包 ( Download packages.)】uninstall 【# 卸载卸载包 ( Uninstall packages.)】freeze #【 冻结按需求格式安装的包的输出 (Output installed packages in requirements format.)】list #【 列表列出已安装的包 ( List installed packages.)】show #【 显示已安装软件包的信息 ( Show information about installed packages.)】check #【 检查已安装的软件包是否具有兼容的依赖项 ( Verify installed packages have compatible dependencies.)】config #【 配置管理本地和全局配置 ( ...
【Linux-Python】linux下安装sqlmap
12345678910111213141516171819202122232425262728293031323334#首先先安装pip 不懂得翻我以前的文章#安装pip install sqlmap #显示包的位置pip show sqlmapWARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.Name: sqlmapVersion: 1.4.3Summary: Automatic SQL injection and database takeover toolH ...
【Pythonpycpyinstaller】反编译Pyinstaller打包的exe和pyc文件
前言
玩逆向的我今天接到了个单子,就是要逆向某exe。逆向exe我还没有试过就抱着尝试的心态,发现该exe是python写的就开始研究如何逆向就各种谷歌和百度终于琢磨出来了如何逆向。如果是pyc可以直接使用在线逆向工具或者开源工具就能逆向了,但是如果是编译成exe的你就得需要提取出来并修改后才可以
准备工具
Unicode码转中文
在线反编译Pyc
UnCompyle6
pyinstxtractor.py
开始反编译
首先使用pyinstxtractor.py提取出所有文件
python pyinstxtractor.py exe文件路径
提取出来后会有一堆dll和pyc的文件这些不用理我们只需要找到没有后缀的文件(这个就是pyc文件)
420d 0d0a 0000 0000 0000 0000 e300 0000
用sublimttext打开在文件然后再前面添加一行十六进制保存即可(上面这窜),然后保存改后缀名为.pyc
打开我们的在线反编译pyc选择文件进行反编译,反编译出来的字符串是u码所以需要用到在线转换u码把u码转字符串即可得到源码
Android微信支付的坑
事情是这样的我接了个单子就是写微信登陆和支付的
一开始我接单子的时候想之前都写过qq登录微信也应该差不多结果我错了首先遇到的坑有
sdk的配置他是把sdk放到了maven远程仓库然后直接compile但是我as抽风好了许久最终下载了官方的demo找到了jar直接copy到工程文件夹里了
我边写边吐槽写文档的开发者乱七八糟后来我看着官方demo改的终于成功了。于是就有了这篇文章
登录的class名称必须是WXEntryActivity并且继承activity实现IWXAPIEventHandler接口否则无法回调
然后剩下的直接上图了
微信登录和qq登录不同他是先把回调返回来的code进行发送请求获取access_token但access_token有效期只有两小时
我这里登录只需要用户的openid和nickname所以我没有获取有效期一个月的access_token详细见官网
这里也没有api判断是否登录全部得自己写所以写这个微信登陆的时候很恼火别看代码那么简单实现写起来真的是各种坑这是最坑的地方不仅class要WXEntryActivity还要在wxapi包下所以要新建一个 ...
【Java多线程】线程安全问题
首先什么是线程安全问题?
答:当多个线程同时修改做写操作的时候可能受到其他线程的干扰导致数据出现问题这种现象叫做线程安全问题
举个例子比如火车票自动售票机,原本有100张票分别有两个售票机进行判断票数是否大于0,如果票数大于0就把票出售给乘客,但当两个售票机同时读取这个变量的时候第一个判断大于0就售出了但第二个判断也大于0但前面第一个线程已经把票售出了所以此时是0张票这个时候就可能出现了-1张票,或者售出了同一张票
12345678910111213141516171819202122232425262728293031323334353637public class ThreadTest implements Runnable { private int trainCount = 100; @Override public void run() { while (trainCount > 0) { try { Thread.sleep(500); ...
【Java多线程】使用同步代码块解决线程安全问题
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141public class ThreadTest implements Runnable { private int trainCount = 100; private Object lock = new Object();//实例化一个对象当作锁 @Override public void run() { wh ...
【Java多线程】函数锁,证明是this锁
函数所非常简单
只需要在函数定义的时候加上synchronized关键字就可以了
那么synchronized用的是什么锁呢
答:this锁,怎么知道他是this锁的呢
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157public class ThreadTest implements Runnable { ...