本篇参考:http://tonl.iteye.com/blog/1918245

python版本:2.7 64bit window版本;

下载python:http://www.python.org/getit/

  • Python 2.7.5 Windows X86-64 Installer (Windows AMD64 / Intel 64 / X86-64 binary [1] -- does not include source),进行安装:

首先编写下面的spider.py脚本:

# -*- coding: utf-8 -*-
#import urllib2
from urllib import urlopen
import os
import sysclass 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=filenameif not os.path.isdir(downloadPath):print 'the given download path does not exist ,the programe will exit'else:self.dpath=downloadPathdef 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:breakif '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下载网页相关推荐

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

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

  2. 怎么在python下载网站内容-Python下载网页的几种方法

    get和post方式总结 get方式:以URL字串本身传递数据参数,在服务器端可以从'QUERY_STRING'这个变量中直接读取,效率较高,但缺乏安全性,也无法来处理复杂的数据(只能是字符串,比如在 ...

  3. java 调用python脚本过程_通过Java调用Python脚本

    在进行开发的过程中,偶尔会遇到需要使用Java调用Python脚本的时候,毕竟Python在诸如爬虫,以及科学计算等方面具有天然的优势.最近在工作中遇到需要在Java程序中调用已经写好的Python程 ...

  4. java执行python返回null_[转]java调用python脚本以及通过Process.waitFor()直接调用python模块返回错误代码1的一种解决办法...

    常见的java调用python脚本方式 通过jython提供的类库实现 通过Runtime.getRuntime()开启进程来执行脚本文件 通过jython提供的类库实现 通过jython实现的话,我 ...

  5. Java 调用 Python 方法学习笔记

    文章转载自: 作者:IT_xiao_bai                         来源:CSDN                         原文:https://blog.csdn.n ...

  6. windows文本转语音 通过java 调用python 生成exe可执行文件一条龙

    我已记不清 我失败过多少次 ,找过多少资料 ,但是功夫不负有心人 ,还是成功了. 所有资料和需要的语音模块的资料以放置在文章末尾, 有些是引用别人的博客的部分内容, 原文是在有道云笔记,所以没有图 . ...

  7. python java混合编程_详解java调用python的几种用法(看这篇就够了)

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

  8. java调用python 踩的坑

    因为工作需要 现在要用java去调用python程序的方法 java 调用python的方法有很多 这里主要讲一下最常用的一种,Runtime.getRuntime().exec ("pyt ...

  9. Java调用Python的方法

    Java调用Python的方法 方法一:Runtime.getRuntime() 首先,add_test.py代码如下 def add(a,b):return a + b res = add(3,4) ...

最新文章

  1. 计算机财务应用实验心得,计算机会计实习心得-20210628124643.doc-原创力文档
  2. Provisioning Services 7.6 入门到精通系列之九:创建和配置目标设备
  3. CSS学习六:布局剖析
  4. SVG与UML图详解
  5. Python列表变字典
  6. Zabbix5.0监控系统安装详解
  7. 再严重的感冒,马上就好!!
  8. 怎么测试ajax get请求,为什么我的AJAX在运行测试时请求dev中的PUT请求,但请求了GET请求?...
  9. svn回退到上一个版本_Git实用教程(一) | 为什么需要版本控制?(以嵌入式项目开发为例)...
  10. UE3 光照 阴影
  11. SAP License:值字段更改注意事项
  12. 函数防抖debounce和节流throttle
  13. jquery mini下载_【福利】iPhone 12 Pro Maxamp;mini预售开始啦!
  14. android 自定义Preference CheckBoxPreference ListPreference的用法
  15. 火狐浏览器自动安装xpi扩展
  16. JS打印菱形、简易计算器
  17. safari 浏览器版本升级后提示“此网页出现问题,已重新载入网页” 解决办法
  18. tipask火车头采集器文章和提问发布模块|非免登录
  19. Android——App版本控制PHP
  20. 国信证券学习系列(5)

热门文章

  1. Mozilla的架构(收集)
  2. java程序员i5 i7_买电脑选择i5还是i7?很多人被忽悠了,专业人士说出了3点实话!...
  3. oracle asm 缺省用户,oracle asm自动存储使用及管理说明(下)
  4. 华为路由器 上网慢 延迟高 解决方法
  5. 用公式编辑器将数学公式转为LaTeX代码
  6. Affinity Designer Mac破解版中文永久激活方法
  7. 怎么防止过曝_在拍摄的时候,要如何避免闪光灯过曝?
  8. python作业-5
  9. 电脑怎么查看蓝牙版本
  10. 史上最全的定位攻略,您应该知道的定位方法。