簡體   English   中英

使用Jython運行HtmlUnit - 在命令行上啟動問題

[英]Running HtmlUnit with Jython - issue with startup on command line

我按照本教程嘗試使用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 standalone v.2.5.2

您的整個命令行正在由java命令處理(應該如此),並且-J-classpath確實不是java的有效命令行選項。 您應該嘗試按照本教程的確切步驟進行操作,因為您缺少幾個重要步驟(以及構建自己的步驟)。

如果腳本使用腳本需要運行的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()

我之前遇到過這樣的錯誤,並按照這些步驟成功解決了這個問題。

  1. 下載jython並運行java -jar python-installer-xxx.jar來安裝jython,然后你可以將jython/bin文件夾放到你的系統路徑中,在命令行中運行jython以確保它沒問題。
  2. 在sourceforge中下載htmlunit jar文件,你需要具體說明它的位置。
  3. 寫你的.py文件並運行

    jython -J-classpath "/Users/crabime/Development Folder/htmlunit-2.23/lib/*" /Users/crabime/PycharmProjects/scrapimage/crabime/gartner.py

一切都會好的,如果你仍然錯過未找到的模塊,也許你應該檢查輸入命令類型錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM