首页 新闻 会员 周边

java调用并传递参数给python脚本

0
悬赏园豆:30 [已解决问题] 解决于 2017-09-30 17:17

我有一个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来打开页面呢?

bethansy的主页 bethansy | 初学一级 | 园豆:105
提问于:2017-09-30 16:11
< >
分享
最佳答案
1

找python如何获取命令行参数,然后java exec传递参数就可以了

收获园豆:30
TCG2008 | 小虾三级 |园豆:1150 | 2017-09-30 17:00

是的,后来自己试出来了,放在这里方便大家看

(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)
bethansy | 园豆:105 (初学一级) | 2017-09-30 17:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册