-4

PythonとUrllib2を使用してウェブサイトのリストのRobots.txtダウンローダーを作成しています。以下はコードです

    import MySQLdb
    import urllib
    import urllib2
    clone=0
    db = MySQLdb.connect("127.0.0.1","root","","research" )
    cursor = db.cursor()
    sql = "SELECT * FROM sites"
    try:
     cursor.execute(sql)
         # Fetch all the rows in a list of lists.
     results = cursor.fetchall()
     for row in results:
     id = row[0]
     website = row[1]
     website=website+"robots.txt"
     print website
     try:
        check = urllib2.urlopen(website,timeout=10).code
        if not check: 
            print "No WEBSERVER FOUND"
            clone=1
     except IOError:
        clone=1
        print "No Webserver Found"
     if(check==200 or clone==0):
        sql2 = "UPDATE sites SET robots_txt_available=1 WHERE ID=%s" % \
            (id)
                    cursor.execute(sql)
        print website," Has Robots.txt.";
    else:print website," does not Have robots.txt."
    except:
            print "Error: unable to fecth data"

            # disconnect from server
    db.close()

コードの出力は次のとおりです。

 http://rashtrapatisachivalaya.gov.in/robots.txt
 No Webserver Found
 Error: unable to fecth data

したがって、完全には実行されていません。誰でもこのコードの問題点を教えてください。

4

1 に答える 1

1

あなたの論点は何ですか?指定されたURLが存在しないため、except句のコードが実行されています。また、「コード」属性へのアクセスは、例外がない場合にのみ実行されます。

適切な解決策は

import urllib2
try:
   urllib2.urlopen("some url")
except urllib2.HTTPError, err:
   if err.code == 404:
       <whatever>
   else:
       raise
于 2012-12-16T10:59:59.990 に答える