您的位置:首页 > 移动开发 > 微信开发

python爬虫抓手机号+java客户端小程序3

2016-05-24 11:38 711 查看

介绍

上篇用java把界面画好了,这篇来写java调用python爬虫。最初用jython,查了些资料,调用时总是报错找不到我引用的类库。(当时没找到解决方法,好像可以通过PythonInterpreter来引类库)然后我就放弃jython了。我想干脆把python打包成exe,然后用java调exe应该也行吧

把python打包成exe

首先要安装py2exe,可以从https://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/下载,(找对应你系统的文件下载,我是64win7 py2.7)然后一路下一步安装好就ok了
打开原来的爬虫程序,在同级目录下新建文件“mysetup.py”。
# mysetup.py
from distutils.core import setup
import py2exe

setup(console=["test.py"])#写你要打包成exe的程序
然后运行就生成了dist文件夹和build文件夹,dist下就有我们打包好的exe。我把第一篇的程序做了下修改,如下:
# coding: UTF-8
import sys
import re
import requests

def write(page):
end = ""
r = requests.get("http://www.0597zp.com/more.php?page=" + str(page))
result = re.findall('target=_blank>(.*?)</A>', r.content)
if (len(result) > 0):
# tempfile = open("mobile.txt", 'a')
for i in result:
# print (i + ";")
end = end + i + ";"
# tempfile.write(i + ";")
# tempfile.write("\n")
# tempfile.close()
return end

def begin(pages):
end = ""
for i in range(1, pages+1):
end = end + write(i)
return end

print (begin(int(sys.argv[1])))


HiPython.java

直接上代码:

package test.jython;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class HiPython {

public String getMobile(String pages){
StringBuffer buffer = new StringBuffer();
String[] s={pages};
try {
System.out.println(HiPython.class.getClassLoader().getResource("dist/test.exe"));
Process exec = Runtime.getRuntime().exec("dist/test.exe "+pages); //2
BufferedReader in = new BufferedReader(new InputStreamReader(exec.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
buffer.append(line);
}
in.close();
exec.waitFor();
} catch (Exception e) {
e.printStackTrace();
}

return buffer.toString();
}

}


然后我们从eclipse里Export该项目为可执行jar,如图:



在把jar文件放到和dist同级目录下,双击jar文件就能用了。

遇到的问题

1.如果你的jar打包后,运行有问题,你可以从cmd中通过java -jar XXX.jar来打开你的jar文件,然后错误信息就会打印到命令行了。
2.java获取资源文件路径,这篇文章很好/article/3967305.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: