だから私はPythonを使って508コンプライアンスチェックを自動化しようとしています。当サイトには数百ページありますが、現時点では毎週実際にサイトを閲覧し、すべてのURLを手作業で入力しようとしています。以下のUIUCリンクは、リファラーヘッダーのリクエストをチェックしてから、そのサイトの評価を返します。実際に動作するようにリクエストを取得できません。私はSOをすべて調べましたが、役立つものは何も見つかりません。厄介なコードは、そのエラーメッセージの下と下にあります。
def fae(urltofae):
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
#[('Referer': urltofae)]
r = opener.open('http://www.fae.cita.uiuc.edu/evaluate/link/')
print r
fae("http://www.example.com/")
そしてエラー:
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in fae
File "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/urllib2.py", line 400, in open
response = self._open(req, data)
File "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/urllib2.py", line 418, in _open
'_open', req)
File "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/urllib2.py", line 378, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/urllib2.py", line 1207, in http_open
return self.do_open(httplib.HTTPConnection, req)
File "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/urllib2.py", line 1177, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno 8] nodename nor servname provided, or not known>
そして、(ユーザーエージェントの代わりに)リファラーヘッダーを変更しようとすると、フォーマットがユーザーに文句を言わなかったものと同じであっても、リクエストに到達するのではなく、フォーマットエラーが発生します-エージェント。
私はまだ非常に新しいプログラマーなので、露骨なものが欠けている場合は、ひどく申し訳ありませんが、私は考えられるすべてのことを試みました。よろしくお願いします。
OK、それで私は戦略を切り替えました、そしてそれはうまくいきました。残念ながら、以下のコードが機能する理由がわかりません。上記のものでエラーが発生し続けましたが、グーグルの周りに似たような質問(具体的な回答はありません)がいくつか見られたので、投稿する必要があると思いました。
vlz、助けてくれてありがとう、乾杯。
def faeRequest2(urltofae):
r = urllib2.Request('http://fae.cita.illinois.edu/evaluate/link/', headers={'User-agent':'Mozilla/5.0', 'Referer':urltofae})
c = urllib2.urlopen(r)
print c.read()