অজগর দিয়ে আমি কেন গুগল থেকে চিত্রগুলি ডাউনলোড করতে পারলাম না?


9

কোডটি আমাকে গুগল থেকে গুচ্ছের চিত্রগুলি ডাউনলোড করতে সহায়তা করেছে। এটি কয়েক দিন আগে কাজ করত এবং এখন হঠাৎ করে কোডটি ভেঙে যায়।

কোড:

# importing google_images_download module 
from google_images_download import google_images_download  

# creating object 
response = google_images_download.googleimagesdownload()  

search_queries = ['Apple', 'Orange', 'Grapes', 'water melon'] 


def downloadimages(query): 
    # keywords is the search query 
    # format is the image file format 
    # limit is the number of images to be downloaded 
    # print urs is to print the image file url 
    # size is the image size which can 
    # be specified manually ("large, medium, icon") 
    # aspect ratio denotes the height width ratio 
    # of images to download. ("tall, square, wide, panoramic") 
    arguments = {"keywords": query, 
                 "format": "jpg", 
                 "limit":4, 
                 "print_urls":True, 
                 "size": "medium", 
                 "aspect_ratio": "panoramic"} 
    try: 
        response.download(arguments) 

    # Handling File NotFound Error     
    except FileNotFoundError:  
        arguments = {"keywords": query, 
                     "format": "jpg", 
                     "limit":4, 
                     "print_urls":True,  
                     "size": "medium"} 

        # Providing arguments for the searched query 
        try: 
            # Downloading the photos based 
            # on the given arguments 
            response.download(arguments)  
        except: 
            pass

# Driver Code 
for query in search_queries: 
    downloadimages(query)  
    print()

আউটপুট লগ:

আইটেম নম্বর: 1 -> আইটেমের নাম = অ্যাপল মূল্যায়ন করছে ... ডাউনলোড শুরু হচ্ছে ...

দুর্ভাগ্যক্রমে সমস্ত 4 টি ডাউনলোড করা যায়নি কারণ কিছু চিত্র ডাউনলোডযোগ্য ছিল না। 0 এই অনুসন্ধান ফিল্টারটির জন্য আমরা পেয়েছি 0!

ত্রুটি: 0

আইটেম নম্বর: 1 -> আইটেমের নাম = কমলা মূল্যায়ন হচ্ছে ... ডাউনলোড শুরু হচ্ছে ...

দুর্ভাগ্যক্রমে সমস্ত 4 টি ডাউনলোড করা যায়নি কারণ কিছু চিত্র ডাউনলোডযোগ্য ছিল না। 0 এই অনুসন্ধান ফিল্টারটির জন্য আমরা পেয়েছি 0!

ত্রুটি: 0

আইটেম নম্বর: 1 -> আইটেমের নাম = আঙ্গুর মূল্যায়ন হচ্ছে ... ডাউনলোড শুরু হচ্ছে ...

দুর্ভাগ্যক্রমে সমস্ত 4 টি ডাউনলোড করা যায়নি কারণ কিছু চিত্র ডাউনলোডযোগ্য ছিল না। 0 এই অনুসন্ধান ফিল্টারটির জন্য আমরা পেয়েছি 0!

ত্রুটি: 0

আইটেম নম্বর: 1 -> আইটেমের নাম = জলের তরমুজ মূল্যায়ন হচ্ছে ... ডাউনলোড শুরু হচ্ছে ...

দুর্ভাগ্যক্রমে সমস্ত 4 টি ডাউনলোড করা যায়নি কারণ কিছু চিত্র ডাউনলোডযোগ্য ছিল না। 0 এই অনুসন্ধান ফিল্টারটির জন্য আমরা পেয়েছি 0!

ত্রুটি: 0

এটি আসলে একটি ফোল্ডার তৈরি করে তবে এতে কোনও চিত্র নেই।


1
আমি বুঝতে পারি না কেন এই পোস্টটি 2 টি অপছন্দ পেয়েছে?
সাই কৃষ্ণদাস

1
আমারও একই সমস্যা এটি কয়েক দিন আগে কাজ করে।
আমিত

উত্তর:


0

দেখে মনে হচ্ছে প্যাকেজটিতে কোনও সমস্যা আছে। এই খোলা PRs দেখুন: PR1 এবং PR2


তাদের অনেক আগেই দেখা হয়েছিল কিন্তু এখনও সমস্যার সমাধান করতে পারেনি
সায় কৃষ্ণদাস

0

আমার মনে হয় গুগল DOM পরিবর্তন করছে। উপাদান শ্রেণি = "rg_meta notranslate" আর বিদ্যমান নেই। এটি শ্রেণীতে পরিবর্তন করা হয়েছে = "আরজি_আই ..."


def get_soup(url,header):
    return BeautifulSoup(urllib2.urlopen(urllib2.Request(url,headers=header)),'html.parser')    

def main(args):
    query = "typical face"
    query = query.split()
    query = '+'.join(query)
    url = "https://www.google.co.in/search?q="+query+"&source=lnms&tbm=isch"
    headers = {}
    headers['User-Agent'] = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
    soup = get_soup(url, headers)
    for a in soup.find_all("img", {"class": "rg_i"}):
        wget.download(a.attrs["data-iurl"], a.attrs["data-iid"])


if __name__ == '__main__':
    from sys import argv
    try:
        main(argv)
    except KeyboardInterrupt:
        pass
    sys.exit()

সুতরাং, আমি কীভাবে তাদের পরিবর্তন করব?
সাই কৃষ্ণদাস

0

প্রকৃতপক্ষে সমস্যাটি এতদিন আগে দেখা যায়নি, ইতিমধ্যে একই রকম গিথুব ইস্যুগুলির একটি গুচ্ছ রয়েছে:

দুর্ভাগ্যক্রমে, কোনও সরকারী সমাধান নেই, আপাতত, আপনি আলোচনায় প্রদত্ত অস্থায়ী সমাধানটি ব্যবহার করতে পারেন ।


-1

এটি কাজ না করার কারণ হ'ল গুগল সমস্ত কিছু করার পদ্ধতি পরিবর্তন করেছে যাতে আপনার এখন অনুসন্ধান স্ট্রিংয়ের অন্তর্ভুক্ত api_key দরকার। এই প্যাকেজগুলির ফলস্বরূপ যেমন গুগল-চিত্রগুলি ডাউনলোড করা আপনার আর 2.8.0 সংস্করণ ব্যবহার না করে কাজ করবে না কারণ এপিআইকি স্ট্রিংটি সন্নিবেশ করানোর জন্য তাদের কোনও স্থানধারক নেই যা আপনার অবশ্যই আপনার 2500 ফ্রি ডাউনলোডগুলি গুগলের সাথে নিবন্ধিত করতে হবে।

আপনি যদি serpapi.com থেকে কোনও পরিষেবা অ্যাক্সেস করতে প্রতি মাসে $ 50 বা তার বেশি দিতে ইচ্ছুক হন তবে এটির একটি উপায় হ'ল পিপ প্যাকেজটি ব্যবহার করা google-search-resultsএবং ক্যোয়ারী প্যারামের অংশ হিসাবে আপনার api_key সরবরাহ করা।

params = {
           "engine" : "google",
           ...
           "api_key" : "secret_api_key" 
}

আপনি নিজের API কীটি নিজে সরবরাহ করেন এবং তারপরে কল করুন:

client = GoogleSearchResults(params)
results = client.get_dict()

এটি সমস্ত চিত্র url এর লিঙ্ক সহ একটি JSON স্ট্রিং প্রদান করে এবং তারপরে আপনি কেবল সেগুলি সরাসরি ডাউনলোড করুন।


আমি এপিআই কী পেতে পারি?
সাই কৃষ্ণদাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.