使用requests库无法解析提取网页动态图片链接的问题求助
问题原因
你当前选择的img.h-full元素对应的图片URL是前端JS动态渲染后生成的,静态返回的HTML源码中不存在该属性的有效值,因此直接用CSS选择器提取会失败。
目标站点的所有模板页元数据(包括预览图地址)都提前内嵌在页面头部的application/ld+json类型的脚本标签中,直接解析该JSON即可拿到目标图片地址,无需使用Selenium。
可用代码
import requests from bs4 import BeautifulSoup import json links = [ 'https://www.glideapps.com/templates/baby-reveal-boy-or-girl-wr', 'https://www.glideapps.com/templates/escool-virtual-school-6d' ] with requests.Session() as s: s.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36' for link in links: res = s.get(link) soup = BeautifulSoup(res.text,'lxml') # 提取结构化数据脚本内容 ld_script = soup.select_one('script[type="application/ld+json"]').string # 解析为JSON对象 page_data = json.loads(ld_script) # 直接提取预览图地址 app_image = page_data['image'] print(app_image)
内容的提问来源于stack exchange,提问作者SMTH
相关产品推荐
相关产品推荐

