无法使用 Beautiful Soup 获取图像的 'src' 标签

Unable to grab the 'src' tag for an image with Beautiful Soup

我目前正在开发网络抓取工具,从我校报纸的网站上下载信息,然后重新上传到我们即将推出的新网站。现在我正在测试如何使用 bs4 从网页下载图像。但是,正如我在下面的代码中所解释的,我无法找到图像的 'src' 标签,也就是 url 以便下载图像。

import requests, bs4

url = 'https://www.behrendbeacon.com/parkingconcernsaddressed'
res = requests.get(url)
res.raise_for_status()

soup = bs4.BeautifulSoup(res.text)
imgElems = soup.select('img')
print(imgElem[2]) 
# prints <img alt="18160.jpeg" data-type="image" id="comp-jpa6qz48imgimage"/>

所以进一步解释:

1.) 如果您转到 url 并使用开发人员工具检查网页,您将了解到 imgElem[2] 是我要抓取的新闻文章中的主要图像。下面是一张图片来说明我的意思:

Here's the web page screenshot

2.) 我打印 imgElem[2] 的原因是为了证明 Beautiful Soup 不会用其余数据 'src' 标签获取

简而言之,有人可以解释我错过了什么吗?无法获取 'src' 标签是否是因为该网站是 Wix 网站?感谢您提供的任何帮助

可能只是页面需要先呈现的情况,因为它是动态的。我相信包 requests-html link here 可以做到这一点(尽管如果你试图将它与 Spyder 一起使用,它似乎有一个错误。所以我不太熟悉它。)在有些时候,我将不得不 learn/play 处理它。

与此同时,我使用 Selenium 处理动态页面。 Selenium 在这方面为我工作:

import bs4 
from selenium import webdriver 

url = 'https://www.behrendbeacon.com/parkingconcernsaddressed'

browser = webdriver.Chrome()
browser.get(url)

res = browser.page_source

soup = bs4.BeautifulSoup(res, 'html.parser')
imgElems = soup.find('img').get('src')

# print (imgElems) 
# prints https://static.wixstatic.com/media/7384a7_7bb56fcbcb6c48c0875c93a2b6c9821c~mv2.jpg/v1/fill/
#        w_820,h_151,al_c,q_80,usm_0.66_1.00_0.01/7384a7_7bb56fcbcb6c48c0875c93a2b6c9821c~mv2.webp

browser.close()