尝试在Jython中使用htmlunit来获取javascript网站时出现问题

2024-04-19 15:28:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Jython中的Htmlunit模块来废弃一个包含JavaScript的网站。在

import com.gargoylesoftware.htmlunit.WebClient as WebClient
import com.gargoylesoftware.htmlunit.BrowserVersion as BrowserVersion

import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException
import com.gargoylesoftware.htmlunit.html.HtmlPage
import com.gargoylesoftware.htmlunit.ScriptException

def main():
    webClient = WebClient(BrowserVersion.CHROME) # creating a new webclient object.
    webClient.waitForBackgroundJavaScript(50000)
    webClient.setThrowExceptionOnScriptError(False)
    webClient.setThrowExceptionOnFailingStatusCode(False)


    url = "http://www.w3schools.com/js/DEFAULT.asp"
    page = webClient.getPage(url) # getting the url
    name = page.getByXPath("/html/body/div[3]/div/div/div[2]/h1/span")
    print "name:", name[0].asText()

main()

我面临错误:

^{pr2}$

问题:即使我正在导入这些模块,Eclipse也显示这些模块是未使用的

 import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException
 import com.gargoylesoftware.htmlunit.ScriptException

我导入这些模块是为了绕过JavaScript处理中的错误,我只想关注一些特定的脚本,而不希望htmlunit加载所有脚本。目前htmlunit正在加载所有脚本,例如facebook插件,它被我们的公司网络阻止。在

我是新手,请帮我解决这个问题。在


Tags: 模块nameimportdiv脚本comurlas
1条回答
网友
1楼 · 发布于 2024-04-19 15:28:38

这个错误是有道理的。^{}不再是WebClient的一部分。它已被移到^{}类。在

因此,要访问该方法,您需要调用:

webClient.getOptions().setThrowExceptionOnScriptError(False)

^{}也是如此。在

相关问题 更多 >