引言
跟随前一篇文章,本篇将尝试,引入python库,并且调用方法。
(上一篇:Python 学习笔记 —— 使用Chaquopy在AndroidStudio添加Python环境,java和python互调)
Chaquopy 支持的python库在这个链接里面可以查到:https://chaquo.com/pypi-2.1/
继续添加 python库的调用
如图在app目录下的build.gradle中,在之前添加的python结构中添加pip指令。
其中install的库需要是Chaquopy 支持的库中的。不支持的库运行一下会有报错。
然后在python目录中新建callPyLib.py文件,
代码如下,爬虫+numpy调用,还画了个❤
from bs4 import BeautifulSoup
import requests
import numpy as np
# 爬取网页并解析
def get_http():
requests.packages.urllib3.disable_warnings()
r = requests.get("https://www.baidu.com/",verify=False)
r.encoding ='utf-8'
bsObj = BeautifulSoup(r.text,"html.parser")
for node in bsObj.findAll("a"):
print("---**--- ", node.text)
# 使用numpy
def print_numpy():
y = np.zeros((5,), dtype = np.int)
print(y)
def Love():
print('\n'.join([''.join([(''[(x-y) % len('wwb_nb')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0else' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))
之后在MainActivity中添加调用方法
void callPythonCodeFromLib(){
Python py = Python.getInstance();
py.getModule("callPyLib").callAttr("get_http");
py.getModule("callPyLib").callAttr("print_numpy");
py.getModule("callPyLib").callAttr("Love");
}
在onCreate中调用方法
爬取网页还需要网络权限,在AndroidManifest.xml中添加网络权限
<uses-permission android:name="android.permission.INTERNET"/>
之后连手机,运行,在logcat中可以看到打印结果
(android studio模拟器联网的话还需要模拟器设置一下,这个自己去百度吧)
打印数组:
打印网站爬取:
打印❤ 哈哈哈哈
整个项目:https://download.csdn.net/download/wwb1990/12120537
以上~