吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3984|回复: 4
收起左侧

[Java 转载] Java程序调用Python脚本

[复制链接]
logo_tu 发表于 2018-2-27 17:51
Java程序调用Python脚本大致步骤请看图片一。
前几天弄个微信公众号玩玩,做了个输入关键字,能根据关键字返回音乐地址的公众号。
从论坛中找到相关音乐的接口,然后用python做了一个爬虫,根据关键词,爬到相关音乐
的唯一标示,在根据接口+唯一标示爬去到音乐地址,当然,用java程序也能做爬虫,但是
太麻烦啦,所以选用python
至于python是如何爬的,这里就不说了。
python
脚本地址
百度云:
https://pan.baidu.com/s/1kWPrTVD

...由于突然发现那个音乐接口不能用了,所以就弄了个简单爬爱奇艺电影的爬虫,原理差不多。
python写的不太优雅,见谅
我用的是python2.75,(觉得这个版本很容易乱码比python3)
重要看a.self_main(sys.argv[1]),sys.argv[1]表示的获取屏幕的值,在图片二中,表示的就是   成龙
警告信息就当它不存在。
总结一下,用一个关键字,获取到一堆关于这个关键字的信息的json字符串。
对于那个音乐接口失效的问题,这个时候都体现出python脚本的优越性啦,接口失效,你就修改python脚本,不管怎么修改,只要最后python返回的json格式和你的java实体类属性
对应都可以了。(我比较懒,我的就把)
接下来就是java程序了。
[Java] 纯文本查看 复制代码
package com.shiro.pojo;

public class MovieJson {
	private String title;
	private String img;
	private String url;

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getImg() {
		return img;
	}

	public void setImg(String img) {
		this.img = img;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	@Override
	public String toString() {
		return "MovieJson [title=" + title + ", img=" + img + ", url=" + url + "]";
	}

}


[Java] 纯文本查看 复制代码
	public static List<MovieJson> execFIile1(String word, String filePath) {
		String[] arguments;
		//arguments = new String[] { "python", FILE_PATH, word }数据里面的三个参数,对比图片二,第一个是 python ,第二个是 aiqiyi.py(就是文件路径),第三个是 成龙

		if (filePath == null) {
			arguments = new String[] { "python", FILE_PATH, word };
		} else {
			arguments = new String[] { "python", filePath, word };
		}
		try {
			//核心
			Runtime runtime = Runtime.getRuntime();
			runtime.exec(arguments);
			Process process = Runtime.getRuntime().exec(arguments);
			BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
			StringBuilder sb = new StringBuilder();
			String line = null;
			while ((line = in.readLine()) != null) {
				sb.append(line);
			}
			Gson g = new Gson();
			in.close();
			if (sb.length() < 5) {
				return null;
			}
			int re = process.waitFor();
			List<MovieJson> fromJson = g.fromJson(sb.toString(), new TypeToken<List<MovieJson>>() {
			}.getType());
			return fromJson;
		} catch (Exception e) {
			e.printStackTrace();

		}
		return null;
	}

大致就是利用java程序调用命令窗口,在命令窗口输入指令,然后读取打印的指令,即json字符串,在用
Gson包,把json字符串赋值给实体类。
提一下,把这个电影的地址前面加上电影解析的接口,不就是在线电影了。然后放到用java写的微信公众号里面 。不过我的python脚本写的比较简单,
不知道大家能看懂吗???????不懂可以私聊或者直接回复,不过这几天忙,看到经量回复
ps:大家上班没,有没有招javaee的,工作经验就几个月,对于工资没要求,没要求。最好是武汉,然后是郑州,找工作好难啊,可以私聊
谢谢

TIM截图20180227163638.png
TIM图片20180227170543.png

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
changjiang + 1 + 1 我很赞同!
温馨提示 + 1 + 1 学习了

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

k8112919 发表于 2018-2-27 18:43
加油学习就是胜利
头像被屏蔽
cndgyg 发表于 2018-2-27 19:26
骑狗的猴子 发表于 2018-2-27 22:10 来自手机
 楼主| logo_tu 发表于 2018-2-28 07:33 来自手机
骑狗的猴子 发表于 2018-2-27 22:10
我也在找Java开发

哈哈,你是哪里的?相互学习下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 12:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表