0

プロキシの外部でプログラムを実行すると、次のコードが実行されます。Windows 7 オペレーティング システムを使用して仕事用のプロキシでこのプログラムを実行すると、コマンド プロンプトで「[Errno 11004]」が表示されるか、Cygwin で「[Errno 8]」が表示されます。

このプログラムの目標は、幹部が当社所有の Web サイトの HTTP 応答と URL リダイレクトを取得するために使用できる移植可能な実行可能ファイルにすることです。

#!/bin/python
import urllib, urllib2, sys, logging, time

# Variables 
s = time.strftime('%Y%m%d%H%M%S')
f = open("list.txt",'r')

# Logging
class Logger(object):
    def __init__(self):
        self.terminal = sys.stdout
        self.log = open("assets_"+s+".txt", "a")

    def write(self, message):
        self.terminal.write(message)
        self.log.write(message)  

# Capture logging class
sys.stdout = Logger()

# Text file header
print "ASSET, STATUS, REDIRECT, DATE/TIME"

# Feed program 16,000 URLs
for url in f.readlines():
    try:
        http_connection = 'http://' + (url)
        connection = urllib2.urlopen(http_connection)
        print (url).rstrip("\n"), ",", connection.getcode(), ",", connection.geturl(), ",", (s)
        connection.close()
    except urllib2.URLError as e:
        print e.reason
4

2 に答える 2

0

環境またはデータの問題のようです。これをプロキシで実行していると言いましたが、制限はありますか? この行を機能させるだけに取り組んでください。

接続 = urllib2.urlopen(http_connection)

于 2013-08-23T01:12:07.280 に答える
-1

これが最終的な解決策です。プロキシに関連しないエラーが見つかりました。

#!/bin/python

import urllib2, sys, logging, time, errno, unittest

# Variables
s = time.strftime('%Y%m%d%H%M%S')
f = open("list.txt",'r')

# Create file text file for importing into database
class Logger(object):
    def __init__(self):
        self.terminal = sys.stdout
        self.log = open("assets_"+s+".txt", "a")

    def write(self, message):
        self.terminal.write(message)
        self.log.write(message)  

# Start capture of screen output for database file
sys.stdout = Logger()
print "UID, ASSET, STATUS, REDIRECT, DATE/TIME"

# Loop to capture URL status and redirect information
for assets in f.readlines():
    url = assets.split()
    if len(url) > 1:
        try:
            http = 'http://' + url[1]           
            http_connection = urllib2.urlopen(http, timeout=5)
        except IOError, e:
            if e.errno == None:         
                try:
                    www = 'http://www.' + url[1]
                    http_connection = urllib2.urlopen(www, timeout=5)
                except IOError, e:
                    print url[0], ",", url[1].rstrip("\n"), ",", "", ",", e.errno, ",", (s)
                else:
                    print url[0], ",", url[1].rstrip("\n"), ",", http_connection.getcode(), ",", http_connection.geturl(), ",", (s)
        else:
            print url[0], ",", url[1].rstrip("\n"), ",", http_connection.getcode(), ",", http_connection.geturl(), ",", (s)
于 2013-08-26T21:12:53.380 に答える