yokon's blog

企查查请求头反爬破解

最近有朋友问我,qcc 网站做了一次反爬措施,要如何破解。

分析

我抓包大致看了下,该模块下的请求为 ajax请求,并且每次请求都会带上一个疑似身份验证的请求头,长这个样子:

post41_1

首先搜索网页 html 源码,无法得知该信息从何来,前面的请求也没有带,基本上可以断定是 js 动态生成并带上请求头,和后端交互的。

......

Docker入门:核心组件

什么是Docker

Docker是一个能够把开发的应用程序自动部署到容器的开源引擎,他设计的目的就是要加强程序员写代码的开发环境和应用部署的生产环境的一致性,降低开发环境的代码在生产环境无法正常执行的风险。推荐阅读HERE

安装Docker

Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统可以使用这套脚本安装:

......

读三体

最近我用了两个星期读完了刘慈欣的三体三部曲,《地球往事》、《黑暗森林》、《死神永生》。因为是科幻小说,作者从上帝视角,以宏大的时间跨度,去叙述两个文明在宇宙中为了生存,付诸的努力。本文尽量不叙述小说的剧情。

......

从contextlib源码谈with语句

上一篇文章中,解决*RuntimeError: Working outside of application context.*错误,使用手动将应用上下文推入栈中:

ctx = app.app_context()
ctx.push()
print(current_app.name)
ctx.pop()

而 flask 文档中给我们的解决代码是:

with app.app_context():
    print(current_app.name)

它使用了pythonwith语句,使得代码更加简洁。

AppContext 类

with语句的关键是需要实现__enter____exit__类方法,来看一下 flask 的AppContext类的实现:

......