1. 程序呢是这样的,java调用python,把需要爬的网址当作参数传进去,然后python爬取内容,然后压缩,java把这个压缩包下载到客户端。
  2. 遇到个麻烦,就是同学的爬虫程序是使用scrapy框架的,需要进入入口程序的文件夹下才可以运行,所以我使用了bat批处理文件实现(不安全,但是水平有限,只能这么干)。
  3. 然后在使用struts提供的下载功能将打包好的程序下载到客户端。
    1. 实现下载功能,就是把action中返回值的类型设置为流,具体的配置如下

      <action name="downloadAction" class="action.Actions.DownloadPics"><result type="stream"><!--指定返回类型为流--><param name="inputName">Target</param><!--指定是哪个方法执行之后的返回值--><param name="contentDisposition">filename="this is you cat.zip"</param><!--指定文件的名字--></result></action>
         public InputStream getTarget() throws Exception{File file = new File("/Cat'sEye/downloadFiles/zipFile.zip");CallPython callPython = new CallPython();callPython.execute(getTargetUrl());InputStream in = new FileInputStream(file);return in;}
          int execute(String url) {//         先把上次下载的内容清理干净File file = new File("/Cat'sEye/downloadFiles/111");if(file.exists()){delDir(file);}//         使用bat文件进入python所在的位置,然后实行python程序try {FileWriter writer = new FileWriter("runPython.bat");writer.write("@echo  off");writer.write("\r\n ");writer.write("cd /");writer.write("\r\n");writer.write("cd Cat'sEye\\Cat'sEyePython");writer.write("\r\n");writer.write("python dmzj_start.py" + " " + url);writer.write("\r\n ");writer.write("exit");writer.write("\r\n ");writer.write("@echo   on ");writer.close();Process process =  Runtime.getRuntime().exec("cmd /c start   /wait   runPython.bat");process.waitFor();return 0;} catch (Exception e1) {e1.printStackTrace();}return 1;}

struts2小小项目 经验总结(3) 调用python相关推荐

  1. 项目经验:抽奖程序(Python)

    每家互联网公司到年末都会有聚会,聚会少不了抽奖环节,如何公平.有趣的做好抽奖活动是年会开的好不好的重要评价指标,以下笔者从一个程序员角度,设计一款抽奖程序. 一.业务 参加抽奖的人员数据保存在一个cs ...

  2. pythonnet调用python tsne算法

    之前项目中用到C#调用python库,要不就是脚本调用,要不就是rpc服务调用,脚本调用无法传递复杂参数,rpc服务调用又觉得太麻烦,两边都需要制定协议.之前尝试过使用Keras.Net这个机器学习的 ...

  3. QT调用python文件

    QT调用python文件 基本步骤 1.将python文件要是使用的环境添加到环境变量中 2.新建一个QT项目 3.在.pro文件中加入需要的python库文件目录 右击项目名,然后单击"添 ...

  4. 经验模态分解与Python调用实例

    经验模态分解与Python调用实例 经验模态分解 Python代码实现 经验模态分解 如果需要对一个信号进行降噪的话,我们通常会尝试将一个时域信号变换到不同的域空间,以期将信号中的噪声和有效信号在该域 ...

  5. Java调用python项目实战

    项目中有用到Java调用python的需求,经过各种坑之后,根据业务需求,最终实现Java调用Python的各种情况,现在将总结如下,当然调用的也是Jython,具体原因,下面会介绍,先将代码贴出来. ...

  6. C++调用Python项目实战

    C++调用Python项目: 实战:链接:https://pan.baidu.com/s/1A_If6y37aS2LfWtHglBECQ 提取码:wsnb –来自百度网盘超级会员V2的分享

  7. java和python可以在一个项目中同时使用么-java调用python的几种用法(看这篇就够了)...

    java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...

  8. java调用python项目实战_Java调用Python

    今天遇到Java调用一个Python脚本的问题,纠结了大半天,遇到各种问题.网上搜索的大部分都是用jython,但是我想要调用的python脚本里有import urllib,这个urllib也不是什 ...

  9. python简历项目经验怎么写_个人简历中工作经验怎么写?

    在找工作的过程中,简历的填写是一门大的学问.一份好的简历,能够让面试官,有种迫不及待想要见你的冲动,这样也才能够让你在众多求职者中脱颖而出. 很多人在填写简历中工作经验一栏时候,会出现犯难的情况.可能 ...

最新文章

  1. 2020年python工资一般多少钱-2020年Python的就业薪资有多少?前景如何?
  2. Spring Caching集成Ehcache
  3. SAP IBASE logic of pt_equiindx
  4. 第 3-1 课:集合详解(上) + 面试题
  5. C# 访问MongoDB 通用方法类
  6. C语言实现舒尔特表格生成器
  7. 计算机网络中abc类地址,abc类ip地址-abc类ip地址和私有地址范围
  8. java google 离线地图开发_如何发布google离线地图及二次开发API
  9. 如何用计算机装手机系统,如何使用手机给电脑安装Windows10系统?
  10. c++ virtual
  11. 【深度学习】梯度消失与梯度爆炸的原因分析与解决策略
  12. 物联网应用案例,中易云真实搭建项目
  13. Linux机械硬盘初始化,教你如何初始化外接盒中的硬盘
  14. php采集 今日头条链接,火车头按作者采集今日头条全部文章的方法
  15. html制作洋葱皮,洋葱皮作用做漂染复活节彩蛋教程
  16. 知名软件 XMind 竟然请求其它网站发布其盗版软件
  17. MES系统汽车底盘生产线数据追溯糸统源码
  18. 运维实操——日志分析系统ELK(中)之logstash采集数据、伪装rsyslog、多行过滤、grok切片
  19. OpenStack Days China:华云数据CTO郑军分享OpenStack创新实践
  20. 利用百度地图,实现移动端附近门店功能

热门文章

  1. 记一次失败的MySQL修复经历,报错信息:Tablespace X was not found at X;Set innodb_force_recovery=1 to ignore this
  2. 计算机互联网络教学反思,《电脑与网络》教学反思
  3. Android 农历和节气相关工具类(记录)
  4. 基于RK3288的双屏异显实现
  5. springSecurity 学习(一)创建springSecurity项目
  6. 基于机智云物联网云平台的智能车库
  7. impala 对hue_如何对Hue调光器开关进行重新编程以对灯光进行任何处理
  8. 1213 解的个数[一中数论随堂练]
  9. Adobe MAX | 铅笔画变卡通图、视频变漫画
  10. 架构的演进,阿里资深Java工程师表述架构的腐化之谜