Chuỗi câu hỏi dành cho tân binh...
Tôi mới làm quen với python và gần đây muốn tạo một ứng dụng python nhỏ có thể thu thập ảnh từ Flickr dựa trên các đầu vào tìm kiếm khác nhau. (Ví dụ: nếu tôi gõ "dog", nó sẽ tải xuống tất cả các hình ảnh về chó từ Flickr)
Tôi đã thực hiện một số nghiên cứu trực tuyến và thấy rằng API Flickr có lẽ là cách tốt nhất,Flickr.photos.getKích thước Phương pháp này phải là phương pháp tôi cần sử dụng.
Tuy nhiên, tôi có một số câu hỏi ngớ ngẩn khi viết mã:
Tôi đã áp dụng khóa và bí mật của mình cho API Flickr, tôi chỉ không biết phải làm gì tiếp theo trong python Flickr.photos.getKích thước để tải ảnh xuống. Ví dụ, làm thế nào để gọi phương thức này trong python? (Tôi nhận thấy rằng các tham số bắt buộc cho phương pháp này là khóa và photo_id, làm cách nào tôi có thể lấy photo_id dựa trên đầu vào tìm kiếm "dog")
Sau đó tôi làm theo https://github.com/alexis-mignon/python-flickr-api/wiki/Tutorial Nhưng khi tôi nhập Flickr_api, tôi nhận được thông báo lỗi:
Không thể tải tất cả các mô-đun
Không có mô-đun nào có tên 'đối tượng'
Traceback (most recent call last):
Tệp "D:/Agfa/Projects/Image/flickr.py", dòng 2, trong
nhập Flickr_api
Tệp "D:\Application\Anaconda3\lib\site-packages\flickr_api\__init__.py", dòng 32, trong
từ nhập xác thực set_auth_handler
ImportError: không thể nhập tên 'set_auth_handler'
Sau đó tôi nhìn qua_ khởi tạo _.py:
thử:
từ nhập đối tượng *
nhập khẩu đối tượng
nhập tải lên dưới dạng Tải lên
từ tải lên nhập tải lên, thay thế
ngoại trừ Ngoại lệ là e:
in "Không thể tải tất cả các mô-đun"
kiểu in(e), e
từ nhập xác thực set_auth_handler
từ phương thức_call nhập allow_cache, vô hiệu hóa_cache
từ khóa nhập set_keys
từ _version nhập __version__
Thư viện này dường như không hỗ trợ python 3, nhưng tôi không biết phải làm gì. (Tôi không thể cài đặt nó trên python 3 của mình phương thức_gọi, phím, _version) Tôi đoán tôi sẽ sử dụng Flickrapi
Cảm ơn bạn rất nhiều vì đã ghé qua, cảm ơn bạn một lần nữa.
Tôi nghĩ cuối cùng tôi đã tìm ra cách chính xác để sử dụng FlickrAPI:
Có nhiều cách nhưng mình nghĩ ra 2 cách:
def Flickr_walk(keyward):
đếm = 0
ảnh = Flickr.walk(text=keyward,
tag_mode='tất cả',
tags=phím khóa,
tính năng bổ sung='url_c',
mỗi_trang=100)
cho ảnh trong ảnh:
thử:
url=photo.get('url_c')
urllib.request.urlretrieve(url, path+'\\' + str(count) +".jpg")
ngoại trừ Ngoại lệ là e:
print('không tải được hình ảnh')
Flickr.walk sử dụng API Photos.search, tôi cũng có thể sử dụng API trực tiếp:
def Flickr_search(keyward):
obj = Flickr.photos.search(text=keyward,
tags=phím khóa,
tính năng bổ sung='url_c',
mỗi trang=5)
cho ảnh trong obj:
url=photo.get('url_c')
ảnh = ET.dump(obj)
in (ảnh)
Nhớ lấy key và secret trước nhé:
api_key = 'xxxxxxxxxxxxxxxxxx'
api_secret = 'xxxxxxxxxxxxxx'
Flickr=flickrapi.FlickrAPI(api_key,api_secret,cache=True)
Tôi là một lập trình viên xuất sắc, rất giỏi!