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

介绍

上篇用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>(.*?)', 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,如图:

python爬虫抓手机号+java客户端小程序3_第1张图片
在把jar文件放到和dist同级目录下,双击jar文件就能用了。

遇到的问题

1.如果你的jar打包后,运行有问题,你可以从cmd中通过java -jar XXX.jar来打开你的jar文件,然后错误信息就会打印到命令行了。
2.java获取资源文件路径,这篇文章很好 http://phl.iteye.com/blog/1990525

你可能感兴趣的:(java小程序)