2017-07-01 2 views
0

私はウェブサイトにアクセスしようとしていましたが、urllib.importのurlopenモジュールを使ってそのコンテンツを読むことができるかどうかを確認しようとしていましたが、403禁止されたエラーがあります。403 python3 urllib.requestとの間違い

しかし、私はウェブブラウザでリンクを開こうとすると開きます。おそらく悪意のある攻撃を防ぐために、これはウェブサイトによるセキュリティのようなものです。

コンテンツをWebブラウザからアクセスできるようにするにはどうしたらよいですか?

{コード}

>>> from urllib.request import urlopen 
>>> html= urlopen("http://www.english-for-students.com/A-Wise-Counting.html") 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python3.5/urllib/request.py", line 163, in urlopen 
    return opener.open(url, data, timeout) 
    File "/usr/lib/python3.5/urllib/request.py", line 472, in open 
    response = meth(req, response) 
    File "/usr/lib/python3.5/urllib/request.py", line 582, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/usr/lib/python3.5/urllib/request.py", line 510, in error 
    return self._call_chain(*args) 
    File "/usr/lib/python3.5/urllib/request.py", line 444, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python3.5/urllib/request.py", line 590, in  http_error_default 
    raise HTTPError(req.full_url, code, msg, hdrs, fp) 
urllib.error.HTTPError: HTTP Error 403: Forbidden 
>>> 

{コード}

+0

タイトルを変更する必要があります。質問は実際にタイトルに関連しないと思います。 –

答えて

1

this linkの「ヘッダー」セクションを確認してください。ページから

ウェブサイトによっては、プログラムで閲覧することが嫌いたり、別のブラウザに別の バージョンを送信したりすることが嫌なサイトがあります。デフォルトでは、urllibは をPython-urllib/xy(xとyはPython-releaseのバージョン番号である のPython-urllib/2.5などのメジャーとマイナーです)と指定します。 はサイトを混乱させる可能性があります。 。ブラウザ がそれ自身を識別する方法は、User-Agentヘッダー[3]を介して行われます。 Requestオブジェクトを作成すると、ヘッダの辞書を渡すことができます。

関連する問題