2017-03-13 7 views
-2

URLをスキャンして応答コードを取得するスクリプトを作成中にこのエラーが発生しました。私はStack Overflow、Googleなどを探し求めました。このエラーに対するすべての回答はこの状況に関連していませんでした。これは、この同じ状況に悩まされているユーザーにとって有益です。TypeError:リストインデックスはstrではなく整数でなければなりませんPythonエラー

for dirs in dds_dirpath: 
     if responsecode(dds_host + dds_dirpath[dirs]) == "200" or responsecode(dds_host + dds_dirpath[dirs]) == "201" or responsecode(dds_host + dds_dirpath[dirs]) == "202" or responsecode(dds_host + dds_dirpath[dirs]) == "203" or responsecode(dds_host + dds_dirpath[dirs]) == "204" or responsecode(dds_host + dds_dirpath[dirs]) == "205" or responsecode(dds_host + dds_dirpath[dirs]) == "206" or responsecode(dds_host + dds_dirpath[dirs]) == "207" or responsecode(dds_host + dds_dirpath[dirs]) == "208" or responsecode(dds_host + dds_dirpath[dirs]) == "226" or responsecode(dds_host + dds_dirpath[dirs]) == "401": 
      print "[ \033[1;32;40mOK\033[1;37;40m ] ", dds_host + dds_dirpath[dirs] 
     else: 
      print "[ FAILED ] ", dds_host + dds_dirpath[dirs] 

ありがとうございました。ありがとうございました。この同じ状況で未解決の問題を見つけたので、私はこれを私の問題とは考えません。

+0

エラーはかなり自明です。** dirs **変数は** str **型のようです。それらがちょうどそのように格納されている場合、intにキャストしようとします。また、あなたのタイトルを文字列で検索すると、たくさんの質問と回答が得られ、あなたが探しているものです。 – umutto

+0

str()またはint()を使用して2つの異なるタイプのdata.convertを連結しようとしています。また、type()関数を使用して型をチェックすることもできます。 – shadow0359

答えて

0

問題を解決するために必要なことは、dds_dirpath [dirs]をdirsだけで置き換えることです。 dirsの変数inselfがdds_dirpathを反復し、がかかりますのでdds_dirpath [dirsに]私はあなたには、いくつかのURL 11を要求しているという事実を無視することはできませんそのリストからインデックス、

for dirs in dds_dirpath: 
    if responsecode(dds_host + dirs) == "200" or responsecode(dds_host + dirs) == "201" or responsecode(dds_host + dirs) == "202" or responsecode(dds_host + dirs) == "203" or responsecode(dds_host + dirs) == "204" or responsecode(dds_host + dirs) == "205" or responsecode(dds_host + dirs) == "206" or responsecode(dds_host + dirs) == "207" or responsecode(dds_host + dirs) == "208" or responsecode(dds_host + dirs) == "226" or responsecode(dds_host + dirs) == "401": 
     print "[ \033[1;32;40mOK\033[1;37;40m ] ", dds_host + dirs 
    else: 
     print "[ FAILED ] ", dds_host + dirs 

を何の意味もないことはありません。 if条件で時間(!)を指定します。 Webサイト管理者は、同じIPからの非常に頻繁に要求を好きではないので、それは悪いですし、おそらくあなたのIP

を禁止しますあなたが本当に文字列としてあなたの応答コードを取得してください。この

for dirs in dds_dirpath: 
    if responsecode(dds_host + dirs) in ["200", "201", "202", "203", "204", "205", "206", "207", "208", "226", "401"]: 
     print "[ \033[1;32;40mOK\033[1;37;40m ] ", dds_host + dirs 
    else: 
     print "[ FAILED ] ", dds_host + dirs 

ような何かを行う必要があります、intではない?

関連する問題