繁体   English   中英

Python 请求将图像 src 作为相对路径而不是绝对路径

[英]Python requests gives image src as relative path instead of absolute path

在下图中,我将图像的链接作为 src。

html中图片的src

但是当使用 BeautifulSoup 时,我得到了这个输出:

image['src']
assets/images/content/TUL_5890.jpg

你能告诉我在这种情况下如何提取图像链接吗? 我认为这是因为代码中的onerror 但我不知道如何解决它。

如果您在soup中看到响应 html,

<a class="img-wrapper fancybox" data-caption="Pedestrian Crosswalk Sign" data-fancybox="group" href="assets/images/content/street_view_1a.jpg">
<img alt="Pedestrian Crosswalk Sign" src="assets/images/content/street_view_1a.jpg"/>

它没有您在 chrome 中看到的完整路径,这可能是您的浏览器添加的。 因此,您没有获得完整的路径。 您必须提取标签 src 并将其与 FQDN 连接。

from bs4 import BeautifulSoup
import requests
response = requests.get('https://www.pexco.com/traffic/products/pedestrian-safety-products/in-street-pedestrian-crosswalk-signs/')

soup = BeautifulSoup(response.text, 'lxml')
for imgTag in soup.find_all('img'):
    img_src = imgTag['src']
    if ('assets' in img_src):
        print('https://www.pexco.com/' + img_src)
    else:
        print(img_src)

这给了我们:

https://www.webtraxs.com/webtraxs.php?id=pexco&st=img
https://www.pexco.com/assets/images/template/pexco-logo-dark.svg
https://www.pexco.com/assets/images/banners/bg-banner-traffic-desktop.jpg
https://www.pexco.com/assets/images/content/TUL_5890.jpg
https://www.pexco.com/assets/images/content/Davidson_STOP_4_Ped_Sign_Atlanta_012309.jpg
https://www.pexco.com/assets/images/content/P0000689.jpg
https://www.pexco.com/assets/images/content/street_view_1a.jpg
https://www.pexco.com/assets/images/content/street_view_2a.jpg
https://www.pexco.com/assets/images/content/TUL_5890.jpg
https://www.pexco.com/assets/images/content/Davidson_STOP_4_Ped_Sign_Atlanta_012309.jpg
https://www.pexco.com/assets/images/content/P0000689.jpg
https://www.pexco.com/assets/images/content/street_view_1a.jpg
https://www.pexco.com/assets/images/content/street_view_2a.jpg
https://www.pexco.com/assets/images/content/CADdetails_Microsite_Button.jpg
https://www.pexco.com/assets/images/template/pexco-logo-dark.svg
https://www.pexco.com/assets/images/template/fb-icon.jpg
https://www.pexco.com/assets/images/template/LI-icon.jpg
https://www.pexco.com/assets/images/template/YT-icon.jpg
https://px.ads.linkedin.com/collect/?pid=2856522&fmt=gif

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM