本篇参考:http://tonl.iteye.com/blog/1918245
python版本:2.7 64bit window版本;
下载python:http://www.python.org/getit/
首先编写下面的spider.py脚本:
# -*- coding: utf-8 -*-
#import urllib2
from urllib import urlopen
import os
import sys
class Spider:
"""
download web site from the given file
"""
def __init__(self,filename,downloadPath):
"""
init the filename ,if the filename is not raise a error
"""
if not os.path.isfile(filename):
print 'the given file does not exist,the program will exit'
sys.exit(0)
else:
self.fname=filename
if not os.path.isdir(downloadPath):
print 'the given download path does not exist ,the programe will exit'
else:
self.dpath=downloadPath
def download(self):
"""
download the web site from the given file by line
"""
fp=open(self.fname,'r')
while True:
line=fp.readline()
if not line:
break
if 'html' in line:
tempname=filter(str.isalnum,line).replace('html','.html')
else:
tempname=filter(str.isalnum,line)+'.html'
self.download_html(line,self.dpath+'\\'+tempname)
fp.close()
def download_html(self,website,filename):
"""
download the html by the given web site and save to name
"""
response=urlopen(website)
data=response.read()
fp=file(filename,'a+')
fp.write(data)
fp.close()
def test():
"""
test program
"""
filename=sys.argv[1]
downloadPath=sys.argv[2]
spider=Spider(filename,downloadPath)
spider.download()
if __name__ =='__main__': test()
上面的脚本,要输入两个参数,一个是要下载的网页的地址文件,格式一般如下(websites.txt):
http://blog.csdn.net/fansy1990
http://www.baidu.com
另外一个参数是下载的网页的存放地点。
然后可以在命令行运行:
python D:\\spider.py D:\\websites.txt D:\\download_tmp
然后到D盘的download_tmp下面查找下载的文件,如果找到,则说明配置正确;
最后编写下面的java程序,需要导入jython-*.jar包(lz下载的是2.2的):
package test;
import java.io.IOException;
public class PyTest {
/**
* @param args
* @throws IOException
* @throws InterruptedException
*/
public static void main(String[] args) throws IOException, InterruptedException {
String py_path="D:\\spider.py";
String websites="D:\\websites.txt";
String outDir="D:\\tmp";
//
Process pr=Runtime.getRuntime().exec("python "+py_path+" "+websites+" "+outDir );
pr.waitFor();
System.out.println("done ...");
}
}
运行上面的命令,需要设置eclipse中的Environment属性,添加一个PATH变量,值是python的安装目录;
运行后,会提示:
*sys-package-mgr*: can't create package cache dir, *jython-2.2.jar\cachedir\packages'
这个可以不用管,不会影响程序运行。
分享,成长,快乐
转载请注明blog地址:http://blog.csdn.net/fansy1990
分享到:
相关推荐
java调用python脚本的工具类,可以通过在java项目中导入当前的jar包,可以来调用python的脚本代码来执行python。
Java调用Python的jar包,使用java调用python的时候jar包,不好找!
由于大部分服务器项目还是由java语言居多,之前java方向的同学也多,由于找遍全网也没有找到java调用AI模型的例子,所以特意编写一个java调用AI模型的方法(全网应该就这一份)。思路是通用的,只需要替换不同的模型...
Java调用python传递参数并接收返回值,这是一个Java调用Python的实验程序,你可以直接下载运行。
java调用python脚本。解压后记得查看使用说明文档。 已测试通过。 有疑问的话可以私聊博主。
Java调用python所用到的jar包
在Java中想要调用python程序,可以加入python的依赖包。 Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython也有很多从CPython中继承的模块库。...
java调用python的第三方包,在java工程中直接引用即可,亲测可用
java在web程序具有很大的优势,然而在科学计算,机器学习等领域中不如python,使用java调用python就是为了能够使得一个问题能够更好的解决。
NULL 博文链接:https://zhangzhenting.iteye.com/blog/2298810
java调用python中加法函数
Python 调用Java实例详解 前言: Python 对服务器端编程不如Java 所以这方面可能要调用Java代码 前提: Linux 环境 1 安装 jpype1 安装后测试代码: from jpype import * startJVM(getDefaultJVMPath(), "-ea...
Java调用Python各个版本的jar包,使用java调用每个版本的python的时候jar包都收集好,记得是每个版本哦,不好找!
java调用python,python连接并访问mysql数据,成功获取数据实例
这是一个小工程,我用eclipse写的。虽是入门级别,但是涉及导包,传参,连接数据库,得到返回值,编码问题处理。全是个人摸索的,所有的坑几乎全掉进去过。经验宝贵!
java 调用Python的包,我已经编译通过了,可以使用。。。。
同时利用 Java 实现了基于浏览器/服务器架构的疫情监测预警系统,使该预警系统具有病例信息录入、数据管理和数据可视化展示等功能。论文搭建 Hadoop 分布式集群,扩展了预警系统的存储空间,满足了预警系统大规模...
从Java到Python 通过http调用接口的方式实现java调用Python程序,进行数据交互
GRPC简单应用(Java+Python),java和python版本的grpc调用实现,附文档
Java调用控制台python命令(含传递参数)执行DataX的job任务,mysql向odps同步数据。