安卓手机运行python程序的软件:Termux、Pydroid3
用电脑写了一段python程序抓取某网站的数据。网站数据每天更新,每天的数据都不一样,如果当天没有抓取保存数据,第二天就没有了昨天的数据。有时候人又不在电脑旁,所以希望找到一个能在手机上运行Python程序的软件,随时随地抓取数据。
度娘和谷哥了很久,找到三种类型的转件。
一、在手机上写手机专用的Python程序:Qpython
二、用电脑写可以在手机上运行的app:Kivy和SL4A
三、电脑写的python程序,在手机上运行:Termux、Pydroid3
第三类应该说最简单,不需重写程序。
Termux是一款开源且不需要root,运行在Android终端上极其强大的linux模拟器,支持apt管理软件包,完美支持python,ruby,go,nodejs。本文使用termux搭建Nmap、Sqlmap、BBScan、subDomainsBrute、Hydra、RouterSploit等实现支持端口扫描、注入检测、子域名爆破、多协议弱口令爆破、路由器漏洞检测框架多种功能的Android手机渗透神器。
官方简介
实际上是个手机端的Linux模拟器。能运行python程序。
为了配置环境,吃了不少苦头,写了这篇让他人少走弯路。
1、软件下载
在酷安网上有termux可以下载,目前更新到了0.65版。
github上有源码:https://github.com/termux
官网地址 https://termux.com/
2.1 安装基本命令环境
下载安装后要首先更新包,命令行输入以下命令
apt update
apt upgrade
更换清华源镜像,提高速度
export EDITOR=vi
apt edit-sources
编辑为
The termux repository mirror from TUNA:
deb [arch=all,aarch64] https://mirrors.tuna.tsinghua.edu.cn/termux stable main
:wq保存
或者使用nano、vi、vim手动修改 $PREFIX/etc/apt/sources.list 文件
添加如下:
The termux repository mirror from TUNA:
deb https://mirrors.tuna.tsinghua.edu.cn/termux stable main
并把原来的
deb https://termux.org/packages/ stable main
屏蔽掉(在行首添加#号)
再保存退出
我习惯用nano来编辑文档,默认是没有安装的,使用命令apt install nano来安装nano
使用命令:nano $PREFIX/etc/apt/sources.list 来编辑文件,然后ctrl+o保存,ctrl+x退出
基本命令/软件的安装
apt update
apt upgrade
apt install vim zsh tsu wget git zip neofetch clang make cmake curl python-dev nodejs-dev -y
2.2 安装python
安装python主程序和必要模块,python3和python2都安装
apt install python python-dev python2 python2-dev
3、安装python模块
(1)安装BeautifulSoup,requests
pip install BeautifulSoup4 requests
(2)安装lxml模块
apt-get install clang
tips:近期clang更新到7.0,存在很多问题,好多模块都不能编译了。只能期待作者解决了。
error: command 'aarch64-linux-android-clang' failed with exit status 1
apt-get install libxml2 libxml2-dev libxslt libxslt-dev
依赖库python-dev libxml2-dev libxslt-dev libcrypt-dev openssl-dev libffi-dev
pip install lxml
有可能安装不上,可以先把下面的(3)中的apt部分先安装,在来试试pip install lxml
更新:安装lxml网上给出了一个新方案,如下
pkg install libxml2 libxml2-dev libxslt libxslt-dev libiconv libiconv-dev libclang clang libzmq libzmq-dev libc++
pip install lxml
如果还是安装不了,有网友说缺少libcrypt支持,运行apt-get install libcrypt libcrypt-dev后再安装lxml
最近在小米没有存储卡的手机上,发现在手机目录无法运行程序,提示permission denied
经查阅,运行命令termux-setup-storage就可以了
启用外置存储
pkg install termux-tools
termux-set-storage
Android6.0以上会弹框确认是否授权,执行这条命令确保termux在最前端(当前Activity)
(3)安装scrapy模块(必须先安装lxml才行)
apt install openssl libffi libffi-dev
pip install scrapy
如果安装不上,先试试
apt install openssl openssl-tool openssl-dev
再安装scrapy
(4)安装科学计算相关模块numpy和pandas
apt install clang python python-dev fftw libzmq libzmq-dev freetype freetype-dev libpng libpng-dev pkg-config
LDFLAGS=" -lm -lcompiler_rt" pip install numpy matplotlib pandas jupyter
这里注意:numpy最新版1.13.1有问题,安装不上,需要指定安装1.12.1版
LDFLAGS=" -lm -lcompiler_rt" pip install numpy==1.12.1
【安装时间会有点长,主要是编译过程,几个模块可以一个一个来装,numpy是基==1.12.1础库,装matplotlib和pandas前必须先装】
关于lxml、scrapy 安装失败的情况解决方案
错误error: command 'aarch64-linux-android-clang' failed with exit status 1
近日重装termux,安装lxml scrapy mitmproxy老是失败,还以为是clang更新的缘故。
搜索网络解决方案,是因为安装openssl时直接apt安装的结果。
这里要直接用deb包安装 openssl.deb、openssl-dev.deb、openssl-tool.deb