我试着在本教程之后使用Jython运行HtmlUnit:
http://blog.databigbang.com/web-scraping-ajax-and-javascript-sites/
但它对我不起作用。我无法导入 com.gargoylesoftvare 包,HtmlUnit文件夹中只有一些HTML文件,我需要以某种方式导入?
教程说要像这样运行python脚本:
/opt/jython/jython -J-classpath "htmlunit-2.8/lib/*" gartner.py
我试着跑:
java -jar /Users/adam/jython/jython.jar -J-classpath "htmlunit-2.8/lib/*" gartner.py
我的问题是我得到了一个“未知选项:J-classpath”。但是在Jython.org上甚至没有关于-J-classpath参数的说法。我会非常高兴任何建议。我在Snow Leopard上运行jython独立v.5.5.2
答案 0 :(得分:1)
java
命令正在处理整个命令行(应该如此), -J-classpath 确实不是java
的有效命令行选项。您应该尝试按照本教程的确切步骤进行操作,因为您缺少几个重要步骤(并且有点自己构建步骤)。
答案 1 :(得分:1)
如果脚本使用脚本需要运行的jar的sys.path.append将完整的URL附加到python路径,则可以运行Jython脚本:jython myscript.py。
这是我正在处理的当前脚本。
#!/opt/jython/jython
'''
Created on Dec 7, 2011
@author: chris
'''
import sys, os
from time import sleep
jarpath = '/usr/share/java/htmlunit/' #path the jar files to import
jars = ['apache-mime4j-0.6.jar','commons-codec-1.4.jar',
'commons-collections-3.2.1.jar','commons-io-1.4.jar',
'commons-lang-2.4.jar','commons-logging-1.1.1.jar',
'cssparser-0.9.5.jar','htmlunit-2.8.jar',
'htmlunit-core-js-2.8.jar','httpclient-4.0.1.jar',
'httpcore-4.0.1.jar','httpmime-4.0.1.jar',
'nekohtml-1.9.14.jar','sac-1.3.jar',
'serializer-2.7.1.jar','xalan-2.7.1.jar',
'xercesImpl-2.9.1.jar','xml-apis-1.3.04.jar'] #a list of jars
def loadjars(): #appends jars to jython path
for jar in jars:
print(jarpath+jar+'\n')
container = jarpath+jar
sys.path.append(container)
loadjars()
import com.gargoylesoftware.htmlunit.WebClient as WebClient
webclient = WebClient()
def gotopage():
print('hello, I will visit Google')
url = 'http://google.com'
page = webclient.getPage(url)
print(page)
if __name__ == "__main__":
gotopage()
答案 2 :(得分:0)
之前我遇到过这样的错误,并按照以下步骤成功解决。
java -jar python-installer-xxx.jar
以安装jython,然后您可以将jython/bin
文件夹放入系统路径,在命令行中运行jython
以确保它正常。< / LI>
编写.py文件并运行
jython -J-classpath "/Users/crabime/Development Folder/htmlunit-2.23/lib/*" /Users/crabime/PycharmProjects/scrapimage/crabime/gartner.py
一切都会好的,如果你仍然错过未找到的模块,也许你应该检查输入命令类型错误。