KPBroswer最小化浏览器程序

联合创作 · 2023-09-29 09:23

KPBroswer是一个基于QtWebKit的最小化浏览器程序,通过被第三方程序调用,
能实现对复杂页面加载后数据(例如,复杂Ajax、数据加密)的抓取,支持屏幕截图。
KP是“鲲鹏”二字的拼音首字母。

适用场景:

 页面数据动态加载(例如,Ajax过程过于复杂,分析成本太高);
 数据加密(客户端JS解密,解密算法难以获取或难以用其它语言实现);
 屏幕截图;
 跨平台的抓取方案;


依赖库:

PyQt4
Ubuntu下安装方法:sudo apt-get install python-qt4
Windows下安装方法:在这里下载二进制安装包直接安装http://www.riverbankcomputing.co.uk/software/pyqt/download/

调用方法:

若在Linux终端下运行,需要安装Xvfb。Ubuntu下安装方法:apt-get install xvfb xfonts-base xfonts-75dpi xfonts-100dpi xfonts-wqy
调用举例(Linux):xvfb-run python KPBroswer.py http://www.site-digger.com --flags=redice --output="page.html" --screenshot="sitedigger.jpg"
调用举例(Windows):python KPBroswer.py http://www.site-digger.com --flags=redice --output="page.html" --screenshot="sitedigger.jpg"

Usage: KPBroswer.py  [options]

Options:
  -h, --help            show this help message and exit
  -p PROXY, --proxy=PROXY
                        Proxy to use.
  -t TIMEOUT, --timeout=TIMEOUT
                        The timeout time of loading page.
  -f FLAGS, --flags=FLAGS
                        Flags need to wait for. Semicolon can be used as a
                        eperator.
  -w WAIT_TIMEOUT, --wait_timeout=WAIT_TIMEOUT
                        The timeout time of waitting for flags.
  -g, --gui             Whether to show the broswer GUI.
  -o OUTPUT, --output=OUTPUT
                        The output filename.
  -s SCREENSHOT, --screenshot=SCREENSHOT
                        If the value is not empty, take a screenshot and save
                        it here.

注意:
Linux下不要忘记安装相关字体库,否则截图中的汉字将会是乱码,如下图site-digger-font-problem.jpg所示。

安装后,就正常了,如图site-digger.jpg所示。

示例:
sample.py文件为一个Python以外部程序方式调用KPBroswer.py的示例,其它语言的调用可以参考其实现。

浏览 15
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报