python - 如何使用 BeautifulSoup 保存页面中的所有图像?

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

我正在尝试从网站获取所有图像并使用 beautiful soup 将其保存在本地。当我向下浏览页面时,我只能获取页面中可用的图像,而无法解析页面刷新后可用的图像。

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

那么我怎样才能解析该页面中的许多图像?

最佳答案

如果不滚动,附加内容不会出现。

当您向下滚动时,您可以尝试模仿页面对其他图像内容发出的任何请求。快速查看“开发”选项卡并没有产生任何看起来可以快速且轻松地以可靠方式复制的内容。

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

如果你 Google python scrape reddit 有很多例子。我假设已经存在一个滚动的 reddit 答案。

关于python - 如何使用 BeautifulSoup 保存页面中的所有图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55770443/

相关文章:

python - Python 中的函数组合运算符

python - Numpy:差异黑白 A[:i][:j] 和 A[:i,:j]

python-3.x - Python 多线程与 pynput.keyboard.listener

python - 判断两个字典是否导致循环

r - 动态解析离散的 x 轴标签

ios - NSError 是否可以在 TBXML 中重用?

java - Java中如何检查输入是否符合任意数量的规则?

python - 评估一个数据库命中中的整个 django 查询集

python - Python中类方法中调用实例方法

python - 如何从django中的manage.py调用不同的设置