我无法使用python从站点下载足够数量的图片

时间:2019-10-13 21:15:35

标签: python beautifulsoup

我是新来的。我在编程方面经验很少。

我正在通过https://nostarch.com/automatestuff/

学习python

书中有一项任务:进入Imgur的程序,搜索照片类别,然后下载所有生成的图像。 我有一个问题:当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

0 个答案:

没有答案