如何使用漂亮的汤保存页面中的所有图像?

时间:2019-04-20 05:07:49

标签: python python-3.x parsing web-scraping beautifulsoup

我正在尝试从网站上获取所有图片,并使用漂亮的汤将其保存在本地。我只能获取页面中可用的图像,而无法浏览页面后无法解析图像。

from urllib.request import urlopen
from bs4 import BeautifulSoup
import re
from time import sleep

html = urlopen('https://www.reddit.com/r/wallpapers/top/?t=all')
bs = BeautifulSoup(html, 'html.parser')
images = bs.find_all('img', {'src':re.compile('.jpg')})
for image in images: 
    print(image['src']+'\n')

上面是我为执行此操作而编写的代码。它只会解析文件中的少量图片,而不是全部

https://external-preview.redd.it/s7yoklHciONffazTYc70ba0zRV81F2FALn7wweilPbs.jpg?width=640&crop=smart&auto=webp&s=a88fa282e05b654928d8713d702a134ef72cbf46

https://external-preview.redd.it/gIdBuW-a4BIXktpScXUlwJysblF4-QcZ03KbUIa2UuI.jpg?width=640&crop=smart&auto=webp&s=baa49611bba27a8af223e805ea5419788b9e4487

https://external-preview.redd.it/SZracndjx4e_Yp1WRU-QzA400cdHcMsCMnE40M6v5u4.jpg?width=640&crop=smart&auto=webp&s=b6ab155357a23678e04116dc18ef72637960f311

https://external-preview.redd.it/_NeB4f9cyQBWVTV7s_O0tlC7-Z5Yomm0_J0h3l3wCbE.jpg?width=640&crop=smart&auto=webp&s=305a530f1f6dd7bf23d93bca2f15f16d6daf8aa0

https://external-preview.redd.it/NrD2CQ1PX2oF35bY7mwGiP2aIyDbYWpoV-6mFjUOlTo.jpg?width=640&crop=smart&auto=webp&s=2ca38c2776118e131f53b02802f02bf930ac0ff8

https://preview.redd.it/n1ci0trfgrey.jpg?width=640&crop=smart&auto=webp&s=81ca19c80ac05fda63202c8e2384db33ac5d72a7

那么我如何能够解析该页面中的许多图像?

1 个答案:

答案 0 :(得分:0)

不滚动就不会显示其他内容。

当向下滚动时,您可以尝试模仿页面对其他图像内容的任何请求。在开发选项卡中快速浏览并不会产生看上去很容易且以健壮的方式进行复制的任何内容。

我可能会选择Selenium,并实现一种滚动到列表底部的方法,然后收集此时的所有图像。

如果您使用Google python scrape reddit,则有很多示例。我认为在SO上已经存在一个滚动的reddit答案。