Я не могу загрузить достаточное количество картинок с сайта используя python - PullRequest
0 голосов
/ 14 октября 2019

Я новичок здесь. У меня небольшой опыт программирования.

Я изучаю Python по https://nostarch.com/automatestuff/

В книге есть задание: программа, которая отправляется в Имгур, ищет категорию фотографий и затем загружает всеПолученные изображения. У меня вопрос: когда Imgur показывает страницу поиска, там 58 картинок (заголовков). Когда вы прокручиваете вниз, Imgur показывает плюс 58 изображений и т. Д. Я хочу скачать все это. Но я могу скачать только первые 58. Я попытался прокрутить страницу по Selenium, а после нее сделать выбор по BS4. Я попытался изменить параметры для выбора BS4. Но я получил только 58 фото. Что я сделал не так?

enter image description here

Мой код:

#! python
import requests, os,bs4, time
#from selenium import webdriver
#from selenium.webdriver.common.keys import Keys
os.makedirs('imgur', exist_ok=True)
print('What do you want?')
search=input()
url = 'https://imgur.com/search/score/all?q=' + search
#browser=webdriver.Firefox()
#browser.get(url)
#for i in range(3):
    # htmlElem = browser.find_element_by_tag_name('html')
    # htmlElem.send_keys(Keys.END)
    # time.sleep(1)
res = requests.get(url)
res.raise_for_status()
soup=bs4.BeautifulSoup(res.text, "html.parser")
photos = soup.select('a img')
for photo in photos:
    photoUrl='http:'+ photo.get('src')
    res=requests.get(photoUrl)
    res.raise_for_status()

    photoFile = open(os.path.join('imgur', os.path.basename(photoUrl)), 'wb')
    for chunk in res.iter_content(100000):
        photoFile.write(chunk)
        photoFile.close()
print('Done') 

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...