AttributeError: モジュール Urllib に属性要求がありません
-
Python の
AttributeError: モジュール 'urllib' には属性 'request' がありません
-
Python の
AttributeError: module 'urllib' has no attribute 'request'
を修正する
Python の urllib.request
は独立したモジュールであるため、この状況では urllib
を実装できません。 モジュールに複数のサブモジュールがある場合、それぞれを個別にロードするとコストがかかり、プログラムに関係のない項目で問題が発生する可能性があります。
使用しているモジュールがそれ自体で使用するためにインポートするため、Python はインポートをキャッシュし、それをオブジェクトの一部にします。
Python の AttributeError: モジュール 'urllib' には属性 'request' がありません
このエラーは、URL ライブラリをインポートして URL リンクを開こうとすると、Python でよく発生する例外です。 このエラーを理解するために、例を見てみましょう。
コード例:
import urllib
request = urllib.request.Request("http://www.python.org")
出力:
AttributeError: module 'urllib' has no attribute 'request'
このようなパッケージを使用する場合、必要なモジュールをインポートすることがあります。 urllib
モジュールは、url
のほんの一部が必要だったからといって、すべてをロードする必要はありません。
import url
はライブラリ全体にアクセスしています。 そのため、エラーが表示されます。
Python の AttributeError: module 'urllib' has no attribute 'request'
を修正する
import urllib.request as urllib
のようにインポートするか、その逆で import urllib.request urllib.request.urlopen('http://www.python.org',timeout=1)
を使用できます。
import urllib.request
with urllib.request.urlopen("http://www.python.org") as url:
s = url.read()
print(s)
出力:
<!doctype html>
<head>
<meta charset="utf-8">
'
'
'
'
from urllib.request import Request, urlopen
def get_page_content(url, head):
req = Request(url, headers=head)
return urlopen(req)
url = "https://example.com"
head = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.3",
"Accept-Encoding": "none",
"Accept-Language": "en-US,en;q=0.8",
"Connection": "keep-alive",
"refere": "https://example.com",
"cookie": """your cookie value ( you can get that from your web page) """,
}
data = get_page_content(url, head).read()
print(data)
出力:
<!doctype html>\n<html>\n<head>\n <title>Example Domain</title>\n\n <meta charset="utf-8" />\n
'
'
'
href="https://www.iana.org/domains/example">More information...</a></p>\n</div>\n</body>\n</html>\n'
urllib
モジュールを完全にインポートしてから、そのサブモジュール要求に属性としてアクセスしようとする代わりに、親モジュール urllib
からサブモジュール要求をインポートする必要があります。
import urllib print(urllib.request)
は機能しませんが、from urllib import request print(request)
と import urllib.request
はどちらも成功します。
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません