わかりました、私はPythonにかなり慣れていないので、複数の機能を許可するコンソールウィッチを作成しています。そのうちの1つは、ページソースを取得してページに印刷するか、別の引数がある場合はその引数のファイルに名前を付けることです... 最初の引数は、ソースを取得する Web サイトの 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)
今はコードを改善しても問題ありませんが、要点に焦点を当てています。現在は動作しています。後でコードを改善します。唯一の問題は、ユーザーが偽の Web サイトまたは存在しない Web サイトのページを入力すると、多くのエラーが返されることです。しかし、私が変更した場合:
except IndexError:
print("Coulnd't connect")
source = ""
だけに:
except:
print("Couldn't connect")
source = ""
その後、常に「接続できませんでした...」と表示されます。
何か助けはありますか?残りのコードは役に立たないと思ったので、入れませんでした。必要に応じて、すべて入れることができます。
この非表示エラーにタイトルを付けた理由は、ユーザーが 2 番目の引数を入力すると、ユーザーが名前を付けたファイルにソースを保存するため、何らかの理由で接続できなかったと言うだけでまだ機能するためです。