gpt4 book ai didi

javascript - python :urlParse错误?解析器 Python 3

转载 作者:行者123 更新时间:2023-11-30 12:54:51 26 4
gpt4 key购买 nike

我有以下代码(gdaten[n][2] 给出了一个 URL,n 是索引):

    try:
p=urlparse(gdaten[n][2])
while p.scheme == "javascript" or p.scheme == "mailto":
p=urlparse(gdaten[n][2])
print(p," was skipped (", gdaten[n][2],")")
n += 1
print ("check:", gdaten[n][2])
f = urllib.request.urlopen(gdaten[n][2])
htmlcode = str(f.read())
parser = MyHTMLParser(strict=False)
parser.feed(htmlcode)

except urllib.error.URLError:
#do some stuff
except IndexError:
#do some stuff
except ValueError:
#do some stuff

现在我有以下错误:

urllib.error.URLError: <urlopen error unknown url type: javascript>

第 8 行。这怎么可能?我想在 while 循环中我会跳过所有那些带有 javascript 方案的链接?为什么 except 不起作用?我的错在哪里?MyHTMLParser将在网站上找到的链接附加到 gdaten,就像这样 [[stuff,stuff, link][stuff,stuff, link]

最佳答案

这是一个错误。

换句话说,np不同步。

要解决此问题,请在设置 p 之前将 n 加一。

为什么这不起作用?

假设 n 在开始时设置为零(可以从 42 开始,没关系),假设 gdaten 的布局如下:

gdaten[0][2] = "javascript://blah.js"
gdaten[1][2] = "http://hello.com"
gdaten[2][2] = "javascript://moo.js"

在检查第一个 while 条件时,p.scheme 是 'javascript' 所以我们进入循环。 p 再次设置为 urlparse("javascript://blah.js") 并且 n 增加到 1。因为我们正在检查urlparse("javascript://blah.js"),我们再次进入循环。

p 现在设置为 urlparse("http://hello.com") 并且 n 设置为 2

由于 urlparse("http://hello.com") 通过了检查,while 循环结束。

同时,由于 n 是两个,因此打开的 url 是 gdaten[2][2] 也就是 "javascript://moo.js "

代码修复

try:
p=urlparse(gdaten[n][2])
while p.scheme == "javascript" and p.scheme == "mailto" and not p.scheme:
print(p," was skipped (", gdaten[n][2],")")

# Skipping to the next value
n += 1
p=urlparse(gdaten[n][2])

print ("check:", gdaten[n][2])
f = urllib.request.urlopen(gdaten[n][2])
htmlcode = str(f.read())

...

关于javascript - python :urlParse错误?解析器 Python 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19573745/

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