摘要: 效果图: 废话 如何知道你写的爬虫有没有正常运行,运行了多长时间,请求了多少个网页,抓到了多少条数据呢?官方其实就提供了一个字典就包含一些抓取的相关信息:crawler.stats.get_stats(),crawler是scrapy中的一个组件。你可以在很多组件中访问他,比如包含from_craw 阅读全文
posted @ 2020-05-19 18:34 Python成长路 阅读(1456) 评论(1) 推荐(1) 编辑
摘要: 安装 splash是一个类似于selenium的自动化浏览器,不过它与selenium还是有很大区别的:比如splash是异步的,splash暴露httpAPI来自动化操作。 安装很简单,需要先安装docker,然后拉取镜像: 启动splash: 另外,还可以把容器内的目录映射到本地,这样保证了数据 阅读全文
posted @ 2020-05-19 16:43 Python成长路 阅读(1137) 评论(0) 推荐(0) 编辑
摘要: 前言 scrapy有很多的内置命令,但是有时候我们会想要自定义一些命令,因为写脚本不如敲个命令来的有逼格,也更方便。 不过scrapy官网并没有对自定义命令的文档,有的只是一句话:您也可以使用该COMMANDS_MODULE设置添加自定义项目命令 。有关如何实现命令的示例,请参见scrapy / c 阅读全文
posted @ 2020-05-19 15:26 Python成长路 阅读(422) 评论(0) 推荐(0) 编辑
摘要: scrapy提供了很多中间组件可以让我们更加自定义想要的效果,比如项目管道(item pipeline),下载中间件(downloader middleware),蜘蛛中间件(spider middleware)等。通过更改或者添加的方式我们可以实现很多的功能。这种中间组件就像钩子一样,在完成结果之 阅读全文
posted @ 2020-05-19 10:47 Python成长路 阅读(467) 评论(0) 推荐(0) 编辑
摘要: scrapy组件 首先我们看下scrapy官网提供的新结构图,乍一看这画的是啥啊,这需要你慢慢的理解其原理就很容易看懂了,这些都是一个通用爬虫框架该具有的一些基本组件。上一篇博客说了项目管道(也就是图中的ITEM PIPELINES),可以看到中间的引擎(ENGINE)将item传递给了项目管道,也 阅读全文
posted @ 2020-05-19 10:09 Python成长路 阅读(583) 评论(0) 推荐(0) 编辑
摘要: 导入配置 如何优雅的导入scrapy中settings.py的配置参数呢?总不能用 吧,或者 吧。这看起来一点逼格都没有。 scrapy提供了导入设置的方法:from_crawler 接着,只要在__init__接收这些参数就可以了。 而在一些官方的组件的源码中会这样使用,不过这看起来有点多此一举 阅读全文
posted @ 2020-05-18 23:39 Python成长路 阅读(1313) 评论(0) 推荐(0) 编辑
摘要: "这篇博客" 说了怎么去hook微信来接收好友消息和发送消息,现在就来实现一下,写了个成品软件 软件下载地址:https://www.lanzous.com/ib4g30j 界面很简单,如图:(需要注意的是软件只匹配微信版本2.8.0.121) 主要也就两个功能。 1、自动聊天:使用腾讯AI开放平台 阅读全文
posted @ 2020-05-18 23:36 Python成长路 阅读(1777) 评论(0) 推荐(0) 编辑
摘要: 微信机器人的实现有三种:web,app和exe。其中web很多账号受限登录不了,而hook app的话需要使用xposed则会封号,所以现在大部分机器人都是基于PC微信。 先实现一下最基本的机器人的功能:接收消息和发送消息。找相关call请看:https://blog.csdn.net/qq_384 阅读全文
posted @ 2020-05-18 22:18 Python成长路 阅读(9736) 评论(2) 推荐(0) 编辑
摘要: 我看到 "这篇文章" 之后自己尝试了一下还是找不到对应的call,毕竟没有学习过逆向,只是因为一时兴起想逆向一下微信。 找到关键CALL 不过我找到了一个投机取巧的办法:因为已经知道了微信的二维码图片是PNG格式的,而PNG有一个通用的文件头,如下 我们可以利用这个找到内存中的二维码图片,然后对它下 阅读全文
posted @ 2020-05-18 22:16 Python成长路 阅读(2724) 评论(0) 推荐(1) 编辑
摘要: 开篇 PC微信端读取联系人有三种常规方法: 1. hook相关call来实现拦截联系人数据 2. 读取内存中的包含联系人的二叉树结构 3. 解密读取微信本地数据库 其实前两种方法只是利用微信启动后已经读取联系人放到内存。第一种是拦截过程,第二种是直接获取内存的结果。 第一种方法 找CALL请看:ht 阅读全文
posted @ 2020-05-18 22:12 Python成长路 阅读(1364) 评论(0) 推荐(0) 编辑