소개
이전 기사에 이어이 기사에서는 파이썬 라이브러리를 소개하고 메서드를 호출하려고합니다.
(이전 기사 : Python 연구 노트-Chaquopy를 사용하여 AndroidStudio, Java 및 Python 상호 변조에 Python 환경 추가 )
Chaquopy에서 지원하는 Python 라이브러리는 다음 링크에서 찾을 수 있습니다. https://chaquo.com/pypi-2.1/
계속해서 파이썬 라이브러리에 호출을 추가합니다.
app 디렉터리의 build.gradle에 표시된대로 이전에 추가 한 python 구조에 pip 명령을 추가합니다.
설치 라이브러리는 Chaquopy에서 지원하는 라이브러리에 있어야합니다. 지원되지 않는 라이브러리는 실행시 오류를 발생시킵니다.
그런 다음 python 디렉토리에 새 callPyLib.py 파일을 만듭니다.
코드는 다음과 같습니다. crawler + 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에서 출력 결과를 볼 수 있습니다.
(안드로이드 스튜디오 에뮬레이터가 인터넷에 연결되어 있다면 에뮬레이터를 설정해야합니다. 바이두로 이동하세요.)
어레이를 인쇄합니다.
웹 사이트 크롤링 인쇄 :
인쇄 ❤ Hahahaha
전체 프로젝트 : https://download.csdn.net/download/wwb1990/12120537
위 ~