Python的Mixin概念:什么是mixin
什么是mixinhttps://blog.hszofficial.site/TutorialForPython/%E8%AF%AD%E6%B3%95%E7%AF%87/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E6%83%AF%E7%94%A8%E6%B3%95/%E5%A4%9A%E9%87%8D%E7%BB%A7%E6%89%BF%E5%92%8CMixin.html 定义和使用 Mixin 类应该遵循几个原则: Mixin 实现的功能需要是通用的,并且是单一的,比如上例中两个 Mixin 类都适用于大部分子类,每个 Mixin 只实现一种功能,可按需继承。 Mixin 只用于拓展子类的功能,不能影响子类的主要功能,子类也不能依赖 Mixin。 Mixin 类自身不能进行实例化,仅用于被子类继承。 例子12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849class Person1: def __init__(s...
微信小程序逆向分析:第一步,从手机中提取出wxapkg文件
第一步,从手机中提取出wxapkg文件以安卓为例,进入以下目录:/data/data/com.tencent.mm/MicroMsg/(一长串字符串)/Appbrand/pkg 把这些包从手机里导出来,进行解析,用adb进行导出,如果不知道哪个文件可以批量导出如果很多wxapkg建议清理一下,重启目标小程序。可能出现好几个包) 可以找到wxapkg文件,把它提取到电脑上。 第二步,利用解包工具解包 下载解包工具https://github.com/wanliofficial/wxappUnpacker,https://github.com/Cherrison/CrackMinApp 1node wuWxapkg.js <wx_mini_progranm_file_path> 解包要先解主包 node wuWxapkg.js 分包.wxapkg -s=主包的目录 解决解包过程中的程序报错 可能是子包 。。。 解包成功的标识 根目录下生成:app.js app.json app...
Vimium操作命令:操作网页
v(visual mode), 需要着重讲一下12345678910 先用 / 定位,找到想要选择的字符 再按 v ,进入模式 然后使用 j:向下一行 k:向上一行 h:向左一个字符或标点(数字+h,可以移动多个字符) l:向右一个字符或标点(数字+l,可以移动多个字符) w:下一个标点符号后位置,包括看不见的换行符 e:下一个标点符号前位置 b:取消选中上一个字符,字符和标点算一个字符 常用的基础快捷键在这:温馨提示: Mac对应的⌘就是Windows中的ctrl 大小写需要区分 操作网页123456789101112131415j or <c-e> 向下滚动一点k or <c-y> 向上滚动一点d 向下滚动半页u 向上滚动半页h 向左滚动l 向右滚动r 刷新页面yy 复制当前页面URL到剪切板p 在当前标签页打开剪切板中的URL,如不是URL则默认引擎搜索P 在新标签页打开剪切板中的URL,如不是URL则默认引擎搜索i 输入模式,有些网页有内置的快捷键,进入该模式即可使用该网页内...
正则表达式:参考 https://deerchao.cn/t…
正则表达式参考 https://deerchao.cn/tutorials/regex/regex.htm常用的操作使用re替换的函数123456789101112import reinputStr = 'hello 234 world 567 额外rwe2121'def _add111(matched): intStr = matched.group("number") intValue = int(intStr) addedValue = intValue + 111 addedValueStr = str(addedValue) return addedValueStrreplacedStr = re.sub("(?P<number>\d+)", _add111, inputStr);print(replacedStr) 123456789def replace(matched): group_str = matched.group("page"...
Scrapy中间件源码解读:源码解读
源码解读class MiddlewareManagerE:\python3.7.6\Lib\site-packages\scrapy\middleware.py class Spider(MiddlewareManager)E:\python3.7.6\Lib\site-packages\scrapy\core\spidermw.py class Download(MiddlewareManager)E:\python3.7.6\Lib\site-packages\scrapy\core\downloader\middleware.py class Extensions(MiddlewareManager)E:\python3.7.6\Lib\site-packages\scrapy\extension.py ItemPipelineManager(MiddlewareManager)E:\python3.7.6\Lib\site-packages\scrapy\pipelines_init_.py 关于中间件如何调用1234567891011121314151617181920...
Scrapy调试技巧:scrapy fetch
scrapy fetch12scrapy fetch https://segmentfault.com/a/1190000017087999scrapy fetch https://segmentfault.com/a/1190000017087999 --nolog --headers scrapy shell 带请求头 1scrapy shell -s USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0" https://www.zhihu.com/question/285908404 1234$ scrapy shell>>> from scrapy import Request>>> req = Request('yoururl.com', headers={"header1":"value1"})>...
Scrapy的extensions:EXTENSIONS
EXTENSIONSEXTENSIONS_BASE 注意:关于scrapy爬虫extensions 执行顺序的问题 查看默认的爬虫中间件scrapy settings –get EXTENSIONS_BASE 12345678910{"scrapy.extensions.corestats.CoreStats": 0,"scrapy.extensions.telnet.TelnetConsole": 0, "scrapy.extensions.memusage.MemoryUsage": 0, "scrapy.extensions.memdebug.MemoryDebugger": 0,"scrapy.extensions.closespider.CloseSpider": 0, "scrapy.extensions.feedexport.FeedExporter": 0, "scrapy.extensions.logstats.Log...
Scrapy的download中间件
下载中间件DOWNLOADER_MIDDLEWARES 注意:关于scrapy下载中间件执行顺序的问题 scrapy本身有默认的一些中间件DOWNLOADER_MIDDLEWARES_BASE,可以通过scrapy settings –get DOWNLOADER_MIDDLEWARES_BASE命令查看 12345678910111213141516{"scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware": 100,"scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware": 300,"scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware": 350,"scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddlewar...
Scrapy的spider中间件:爬虫中间件
爬虫中间件SPIDER_MIDDLEWARES 注意:关于scrapy爬虫中间件执行顺序的问题 查看默认的爬虫中间件scrapy settings –get SPIDER_MIDDLEWARES_BASE 1234567{ "scrapy.spidermiddlewares.httperror.HttpErrorMiddleware": 50, "scrapy.spidermiddlewares.offsite.OffsiteMiddleware": 500, "scrapy.spidermiddlewares.referer.RefererMiddleware": 700, "scrapy.spidermiddlewares.urllength.UrlLengthMiddleware": 800, "scrapy.spidermiddlewares.depth.DepthMiddleware": 900} SPIDER_MIDDLEWARES 设置...
mitmproxy / mitmdump
mitmdump文档https://docs.mitmproxy.org/stable/ 安装pip install mitmproxy mitmdump -q -s inect_js.py -p 9999 -q:屏蔽mitmdump默认的控制台日志,只显示自己脚本中的 -s:入口脚本文件 -p:更改端口,默认为8080 修改脚本文件时,不用重启也会生效 针对 HTTP 生命周期的事件 请求:def request(self, flow: mitmproxy.http.HTTPFlow): 响应:def response(self, flow: mitmproxy.http.HTTPFlow): 其它: def http_connect(self, flow: mitmproxy.http.HTTPFlow): def requestheaders(self, flow: mitmproxy.http.HTTPFlow): def responseheaders(self, flow: mitmproxy.http.HTTPFlow): def err...