AttributeError: Modul Urllib hat keine Attributanforderung
-
der
AttributeError: module 'urllib' has no attribute 'request'
in Python -
Beheben Sie den
AttributeError: module 'urllib' has no attribute 'request'
in Python
Da urllib.request
in Python ein eigenständiges Modul ist, kann urllib
in dieser Situation nicht implementiert werden. Wenn ein Modul mehrere Submodule hat, kann das einzelne Laden jedes Moduls teuer sein und zu Problemen mit Elementen führen, die nichts mit Ihrem Programm zu tun haben.
Python wird den Import zwischenspeichern, da das Modul, das Sie verwenden, Importe für sich selbst verwendet, wodurch es zu einem Teil des Objekts wird.
der AttributeError: module 'urllib' has no attribute 'request'
in Python
Dieser Fehler ist eine häufige Ausnahme in Python, wenn Sie versuchen, URL-Links durch Importieren von URL-Bibliotheken zu öffnen. Um diesen Fehler zu verstehen, nehmen wir ein Beispiel.
Codebeispiel:
import urllib
request = urllib.request.Request("http://www.python.org")
Ausgang:
AttributeError: module 'urllib' has no attribute 'request'
Sie können gelegentlich das benötigte Modul importieren, wenn Sie solche Pakete verwenden. Das urllib
-Modul muss nicht alles laden, nur weil Sie nur einen kleinen Teil irgendeiner url
brauchen.
Die Import-URL greift auf die gesamte Bibliothek zu; deshalb zeigt es einen Fehler an.
Beheben Sie den AttributeError: module 'urllib' has no attribute 'request'
in Python
Sie können wie import urllib.request as urllib
oder umgekehrt mit import urllib.request urllib.request.urlopen('http://www.python.org',timeout=1)
importieren.
import urllib.request
with urllib.request.urlopen("http://www.python.org") as url:
s = url.read()
print(s)
Ausgang:
<!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)
Ausgang:
<!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'
Anstatt das Modul urllib
vollständig zu importieren und dann zu versuchen, auf dessen Submodulanforderung als Attribut zuzugreifen, sollten Sie die Submodulanforderung aus dem übergeordneten Modul urllib
importieren.
Der import urllib print(urllib.request)
funktioniert nicht, aber from urllib import request print(request)
und import urllib.request
sind beide erfolgreich.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn