好吧,我对 python 还很陌生,我正在制作一个控制台女巫,它将允许多种功能,其中之一是获取页面源并将其打印在页面上,或者如果他们有另一个 arg 则命名该 arg 的文件...第一个参数将是从中获取源的网站 url。
我的进口是:
import os, urllib.request
这是我的代码:
def grab(command, args, argslist):
if args == "":
print("The " + command + " command wan't used correctly type help " + command + " for help...")
if args != "":
print("This may take a second...")
try:
argslistcheck = argslist[0]
if argslistcheck[0:7] != "http://":
argslist[0] = "http://" + argslist[0]
with urllib.request.urlopen(argslist[0]) as url:
source = url.read()
source = str(source, "utf-8")
except IndexError:
print("Couln't connect")
source = ""
try:
filesourcename = argslist[1] + ".txt"
filesourceopen = open(filesourcename, "w")
filesourceopen.write(source)
filesourceopen.close()
print("You can find the file save in " + os.getcwd() + " named " + argslist[1] + ".txt.")
except IndexError:
print(source)
现在,虽然我现在可以改进我的代码,但我专注于要点。现在它可以工作了,我稍后会改进代码,唯一的问题是如果用户输入一个假网站或一个不存在的网站页面,那么它会返回很多错误。然而,如果我改变:
except IndexError:
print("Coulnd't connect")
source = ""
只是:
except:
print("Couldn't connect")
source = ""
然后总是说无法连接...
有什么帮助吗?我没有放其余代码,因为我认为它没有用,如果您需要它,我可以全部放上。
我命名这个隐藏错误的原因是因为它仍然可以工作,它只是说它无法连接,如果用户键入第二个参数,那么它会将源代码保存到他命名的文件中。