python爬虫利器pyppeteer的使用
0. 前言
Chrome59(linux、macos)、 Chrome60(windows)之后,Chrome自带headless(无界面)模式很方便做自动化测试或者爬虫。但是如何和headless模式的Chrome交互则是一个问题。通过启动Chrome时的命令行参数仅能实现简易的启动时初始化操作。Selenium、Webdriver等是一种解决方案,但是往往依赖众多,不够扁平。
puppeteer是谷歌官方出品的一个通过DevTools协议控制headless Chrome的Node库。可以通过puppeteer的提供的api直接控制Chrome模拟大部分用户操作来进行UI Test或者作为爬虫访问页面来收集数据。
pyperteer是puppeteer的Python实现,相比于selenium具有异步加载、速度快、具备有界面/无界面模式、伪装性更强不易被识别为机器人同时可以伪装手机平板等终端;但是也有一些缺点,如接口不易理解、语义晦涩;
python爬虫基础
python_requests的使用
golang配置信息监听库viper
python基础实践
1. 模块
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
1 | from pkg.func import hello |
__init__.py,如果目录中存在该文件,该目录就会被识别为 module package 。__init__.py在包被导入时会被执行。该文件就是一个正常的python代码文件,因此可以将初始化代码放入该文件中。
golang的日志库zap
日志作为整个代码行为的记录,是程序执行逻辑和异常最直接的反馈。对于整个系统来说,日志是至关重要的组成部分。通过分析日志我们不仅可以发现系统的问题,同时日志中也蕴含了大量有价值可以被挖掘的信息,因此合理地记录日志是十分必要的。
golang编写测试用例
golang的websocket实战
动态库查找路径及LD_LIBRARY_PATH问题
说到和动态库查找路径相关的问题,总体上可以分为两类:
- 第一类:通过源代码编译程序时出现的找不到某个依赖包的问题
- 第二类:就是在运行程序的时候,明明把那个程序需要的依赖包都已经安装的妥妥的了,可运行的时候人家就告诉你说
error while loading shared libraries: libxxx.so.y: cannot open shared object file: No such file or directory。