我有一个python脚本是用浏览器打开一个指定url的页面,我现在想做的是用java调用python脚本,并且java这里将定义url参数并传递给python来打开相关页面
python脚本如下:
from selenium import webdriver def main(a): driver = webdriver.Chrome() # 打开浏览器 driver.get(a) # 浏览器打开指定页面 if __name__ == '__main__': url = 'https://www.tianyancha.com/login' # 需要打开页面的地址 main(url) # 调用main()函数
java代码
package test; import java.io.BufferedReader; import java.io.InputStreamReader; public class MyDemo { public static void main(String[] args) { try { System.out.println("start"); // String url="http://www.jb51.net/article/64345.htm"; String[] args1=new String[]{"python","D:\\pyworkpeace\\9_30_1.py"}; Process pr=Runtime.getRuntime().exec(args1); BufferedReader in = new BufferedReader(new InputStreamReader( pr.getInputStream())); String line; while ((line = in.readLine()) != null) { System.out.println(line); } in.close(); pr.waitFor(); System.out.println("end"); } catch (Exception e) { e.printStackTrace(); } } public void test(){ System.out.println("我的第一个方法C"); } }
java是可以调用python的并打开页面,但是我这里怎么修改java和python脚本,使得java这里定义url传递给python来打开页面呢?
找python如何获取命令行参数,然后java exec传递参数就可以了
是的,后来自己试出来了,放在这里方便大家看
(1)
java中加入了一行,修改 了一行,见下面
String url="http://blog.csdn.net/thorny_v/article/details/61417386";
String[] args1 = new String[] { "python", "D:\\pyworkpeace\\9_30.py", url};
(2)
python的代码通过sys.args接收参数,其中sys.argv[0]是本地文件参数,所以从1开始
import sys from selenium import webdriver def main(a): driver = webdriver.Chrome() # 打开浏览器 driver.get(a) # 浏览器打开指定页面 if __name__ == '__main__': for i in range(1, len(sys.argv)): url = sys.argv[i] main(url)