অ্যাট্রিবিউটআরার: 'মডিউল' অবজেক্টটির 'ইউর্লোপেন' নেই


146

আমি একটি ওয়েবসাইটের এইচটিএমএল উত্স কোড ডাউনলোড করতে পাইথন ব্যবহার করার চেষ্টা করছি তবে আমি এই ত্রুটিটি পাচ্ছি।

Traceback (most recent call last):  
    File "C:\Users\Sergio.Tapia\Documents\NetBeansProjects\DICParser\src\WebDownload.py", line 3, in <module>
     file = urllib.urlopen("http://www.python.org")
AttributeError: 'module' object has no attribute 'urlopen'

আমি এখানে গাইড অনুসরণ করছি: http://www.boddie.org.uk/python/HTML.html

import urllib

file = urllib.urlopen("http://www.python.org")
s = file.read()
f.close()

#I'm guessing this would output the html source code?
print(s)

আমি পাইথন 3 ব্যবহার করছি।

উত্তর:


245

এটি পাইথন ২.x এ কাজ করে

মধ্যে পাইথন 3 টি দেখতে ডক্স :

import urllib.request

with urllib.request.urlopen("http://www.python.org") as url:
    s = url.read()
    # I'm guessing this would output the html source code ?
    print(s)

3
হাই ইউমিরো, পাইথনের 'উইথ' স্টেটমেন্টটি ব্যবহার করে আমি অনুমান করছি এটি ব্যবহার শেষ হয়ে গেলে এটি সংযোগটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়? সি # তে ব্যবহারের বিবৃতিটির মতো?

@ সার্জিও: ঠিক! এবং ইন্ডেন্টেশনের মাধ্যমে আপনি দেখতে পাবেন যে আপনার ফাইলটি এখনও খোলা আছে।
ইউরোমো

হ্যালো @ নিউমিরো, আমি টাইপ করার সময় আমার "ইন্ডেন্টেশন এরিয়ার: প্রত্যাশিত একটি ইন্ডেন্টড ব্লক" এর একটি ত্রুটি রয়েছে s = url.read(), আমি কীভাবে এটি সমাধান করতে পারি তা জিজ্ঞাসা করতে পারি? এক্স
কারেন চ্যান

@ ক্যারেনচান আপনি এর আগে একটি ইনডেন্ট মিস করছেন s=url.read(); আপনি কি এর আগে 4 টি স্পেস পেয়েছেন?
নম্বরমানিয়াক

19

পাইথন 2 + 3 সামঞ্জস্যপূর্ণ সমাধান:

import sys

if sys.version_info[0] == 3:
    from urllib.request import urlopen
else:
    # Not Python 3 - today, it is most likely to be Python 2
    # But note that this might need an update when Python 4
    # might be around one day
    from urllib import urlopen


# Your code where you can use urlopen
with urlopen("http://www.python.org") as url:
    s = url.read()

print(s)

1
with urlopen("http://www.python.org") as url:পাইথন 2 এ কাজ করে না AttributeError: addinfourl instance has no attribute '__exit__'। লেখার দরকার আছেurl = urlopen("http://www.python.org")
orshachar

15
import urllib.request as ur
s = ur.urlopen("http://www.google.com")
sl = s.read()
print(sl)

পাইথন ভি 3-তে "urllib.request" নিজেই একটি মডিউল, সুতরাং এখানে "urllib" ব্যবহার করা যায় না।


7

পাইথন 3 এ কাজ করা ' ডেটাএক্স = urllib.urlopen (url) .read () ' পেতে (পাইথন 2 এর জন্য এটি সঠিক হত ) আপনার অবশ্যই দুটি ছোট জিনিস পরিবর্তন করতে হবে।

1: urllib বিবৃতি নিজেই (মাঝখানে অনুরোধ যোগ করুন):

dataX = urllib.request.urlopen(url).read()

2: এর পূর্বে আমদানি বিবৃতি ('আমদানি urlib' থেকে এতে পরিবর্তন করুন:

import urllib.request

এবং এটি পাইথন 3 এ কাজ করা উচিত :)



1

অজগর 3 এর জন্য, এরকম কিছু চেষ্টা করুন:

import urllib.request
urllib.request.urlretrieve('http://crcv.ucf.edu/THUMOS14/UCF101/UCF101/v_YoYo_g19_c02.avi', "video_name.avi")

এটি বর্তমান কার্যক্ষম ডিরেক্টরিটিতে ভিডিওটি ডাউনলোড করবে

আমি এখানে সাহায্য পেয়েছি


1

পাইথন 3 এর সমাধান:

from urllib.request import urlopen

url = 'http://www.python.org'
file = urlopen(url)
html = file.read()
print(html)

নতুনদের জন্য সহজ এবং সহজে বোঝা। ধন্যবাদ
এসএইচআর

1

দুটি লাইন পরিবর্তন করুন:

import urllib.request #line1

#Replace
urllib.urlopen("http://www.python.org")
#To
urllib.request.urlopen("http://www.python.org") #line2

আপনি যদি 403 টির বেশি অর্থ পেয়েছেন: নিষিদ্ধ ত্রুটি ব্যতিক্রমটি এটি ব্যবহার করে দেখুন:

siteurl = "http://www.python.org"

req = urllib.request.Request(siteurl, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36'})
pageHTML = urllib.request.urlopen(req).read()

আমি আশা করি আপনার সমস্যার সমাধান হয়েছে



0

পাইথন 2 এবং পাইথন 3 এর মধ্যে আপনাকে কোডটি উপযুক্ত করতে ছয়টি মডিউল ব্যবহার করুন

urllib.request.urlopen("<your-url>")```

আপনি এইভাবে ছয়টি মডিউল আমদানি করতে পারবেন ছয়.মোগুলি আমদানি urllib থেকে
রজত শুক্ল

0

পাইথন 2.x এ ব্যবহৃত আপনার কোড, আপনি এটি ব্যবহার করতে পারেন:

from urllib.request import urlopen
urlopen(url)

যাইহোক, পরামর্শ দেওয়া আরও একটি মডিউল requestsব্যবহার করা আরও বন্ধুত্বপূর্ণ, আপনি pipএটি ইনস্টল করতে পারেন এবং এটির মতো ব্যবহার করতে পারেন:

import requests
requests.get(url)
requests.post(url)

আমি ভেবেছিলাম এটি সহজেই ব্যবহার করা যায়, আমি খুব শিক্ষানবিস .... হাহাহা


-1
import urllib
import urllib.request
from bs4 import BeautifulSoup


with urllib.request.urlopen("http://www.newegg.com/") as url:
    s = url.read()
    print(s)
soup = BeautifulSoup(s, "html.parser")
all_tag_a = soup.find_all("a", limit=10)

for links in all_tag_a:
    #print(links.get('href'))
    print(links)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.