我是新来的。我在编程方面经验很少。
我正在通过https://nostarch.com/automatestuff/
学习python书中有一项任务:进入Imgur的程序,搜索照片类别,然后下载所有生成的图像。 我有一个问题:当Imgur显示搜索页面时,有58张图片(标题)。当您向下滚动时,Imgur会显示加58张图片等。我想下载所有内容。但是我只能先下载58。 我尝试按Selenium滚动页面,然后按BS4进行选择。 我尝试更改“ BS4选择”的参数。 但是我只有58张照片。 我做错了什么?
我的代码:
#! 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')