gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 06:05:48 24 4
gpt4 key购买 nike

我正在尝试使用 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()

我遇到的错误:

Traceback (most recent call last):
File "C:\Eclipse\learnJython\src\HTMLunit_basic.py", line 20, in <module>
main()
File "C:\Eclipse\learnJython\src\HTMLunit_basic.py", line 11, in main
webClient.setThrowExceptionOnScriptError(False)
AttributeError: 'com.gargoylesoftware.htmlunit.WebClient' object has no attribute 'setThrowExceptionOnScriptError'

问题:尽管我正在导入这些模块,但 Eclipse 显示这些模块未被使用

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

我正在导入这些模块以绕过 JavaScript 处理引起的错误,我只想关注一些特定的脚本,而不希望 htmlunit 加载所有脚本。目前 htmlunit 正在加载所有脚本 ex。被我们公司网络屏蔽的 facebook 插件。

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

最佳答案

这个错误是有道理的。 setThrowExceptionOnScriptError不再是 WebClient 的一部分。它已移至 WebClientOptions类。

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

webClient.getOptions().setThrowExceptionOnScriptError(False)

setThrowExceptionOnFailingStatusCode 也是如此.

关于javascript - 尝试在 Jython 中使用 htmlunit 抓取 javascript 网站时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22166388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com