import http.client
import csv
def http_get(url, path, headers):
try:
conn = http.client.HTTPConnection(url)
print ('Connecting to ' + url)
conn.request(url, path, headers=headers)
resp = conn.getresponse()
if resp.status<=400:
body = resp.read()
print ('Reading Source...')
except Exception as e:
raise Exception('Connection Error: %s' % e)
pass
finally:
conn.close()
print ('Connection Closed')
if resp.status >= 400:
print (url)
raise ValueError('Response Error: %s, %s, URL: %s' % (resp.status, resp.reason,url))
return body
with open('domains.csv','r') as csvfile:
urls = [row[0] for row in csv.reader(csvfile)]
L = ['Version 0.7','Version 1.2','Version 1.5','Version 2.0','Version 2.1','Version 2.3','Version 2.5','Version 2.6','Version 2.7','Version 2.8','Version 2.9','Version 2.9','Version 3.0','Version 3.1','Version 3.2','Version 3.3','Version 3.4','Version 3.5.1','Version 3.5.2']
PATH = '/'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
HEADERS = {'User-Agent': user_agent}
for url in urls:
HOST = url
print ('Testing WordPress Installation on ' + url)
http_get(HOST,PATH,HEADERS)
私はこれを1、2週間見ていて、同様のエラーを見つけましたが、csvファイルの一部のサイトでは機能し、他のサイトでは機能しない理由がわかりません. サーバーをチェックしたところ、デフォルトで ICMP パケットがドロップされていることがわかったので、それを変更したところ、以前は 100% 失われていたのに対し、traceroute と ping の両方が 100% 受信されるようになりました。そのホスト上のすべてのサイトに同じ問題があったため、関連していると考えました。ただし、私のスクリプトはまだ例外をスローしています:
mud@alex-BBVM:~/Desktop/scripts$ python3 httpTest.py
Testing WordPress Installation on XXXXX.ie
Connecting to exsite.ie
Reading Source...
Connection Closed
Testing WordPress Installation on AAAAAA.com
Connecting to AAAAA.com
Reading Source...
Connection Closed
Testing WordPress Installation on YYYYY.ie
Connecting to YYYYY.ie
Reading Source...
Connection Closed
Testing WordPress Installation on CCCCC.ie
Connecting to CCCCCC.ie
Reading Source...
Connection Closed
Testing WordPress Installation on DDDDDDD.ie
Connecting to DDDDDDD.ie
Connection Closed
Traceback (most recent call last):
File "httpTest.py", line 9, in http_get
resp = conn.getresponse()
File "/usr/lib/python3.2/http/client.py", line 1049, in getresponse
response.begin()
File "/usr/lib/python3.2/http/client.py", line 346, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.2/http/client.py", line 328, in _read_status
raise BadStatusLine(line)
http.client.BadStatusLine: <html>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "httpTest.py", line 38, in <module>
http_get(HOST,PATH,HEADERS)
File "httpTest.py", line 14, in http_get
raise Exception('Connection Error: %s' % e)
Exception: Connection Error: <html>
URL はクライアントのアドレスであるため、明らかにプレースホルダーに置き換えました。ここには掲載したくありません。
とにかく、洞察や助けをいただければ幸いです。
http.client のドキュメントを読みましたが、これは関連する例外ですが、そこから収集したものから解決策を抽出できないようです。
ありがとう!