如何解决使用BeautifulSoup从img标签提取src url
我正在尝试获取img src的URL部分。我想提取以下URL:https://images-na.ssl-images-amazon.com/images/I/41YEd80s6SL._SX384_BO1,200_.jpg
返回以下是我认为是编码图像的图像吗?
数据:图像/ JPEG; BASE64,/ 9J / 4AAQSkZJRgABAQAAAQABAAD / 2wCEABYWGBQYFBwaFhwYHBocIiceGBwgLjg0JzAlNiwsIjYsJTAlIzIsMDouNjA + TkBJPjpnUERYLkRHelJ8ZoZaUnYBDhoYGiAiGh4eIiIeICciRTAgHlIyNDgiSRQ4Hic2Jyk4HCcuMhwpPClJFj4eFFQ6RzIjRScgHiM2JxowNFY2Ov / AABEIARwA3AMBIgACEQEDEQH ....
我没有全部添加,因为它超过600行。
这是我的代码:
from bs4 import BeautifulSoup
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; 64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
url = "https://www.amazon.co.uk/Django-Professionals-Production-websites-Python/dp/1081582162/ref=sr_1_1?dchild=1&keywords=django+for+professionals&qid=1597167266&sr=8-1"
resp = requests.get(url,headers=headers)
soup = BeautifulSoup(resp.content,features="lxml")
product_title = soup.select("#productTitle")[0].get_text().strip()
author = soup.select(".contributorNameID")[0].get_text().strip()
images = soup.findAll('img')
for image in images:
print (image['src'])
编辑:其他img src似乎返回了网址,但不是我专门针对的网址。
解决方法
我相信您可以这样做:
encoded_image = base64.b64decode(image['src'])
,
要提取https://images-na.ssl-images-amazon.com/images/I/41YEd80s6SL._SX384_BO1,204,203,200_.jpg
图像,可以解析data-a-dynamic-image
属性:
import json
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; 64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
url = "https://www.amazon.co.uk/Django-Professionals-Production-websites-Python/dp/1081582162/ref=sr_1_1?dchild=1&keywords=django+for+professionals&qid=1597167266&sr=8-1"
resp = requests.get(url,headers=headers)
soup = BeautifulSoup(resp.content,features="lxml")
product_title = soup.select("#productTitle")[0].get_text().strip()
author = soup.select(".contributorNameID")[0].get_text().strip()
images = soup.find_all('img',src=lambda s: 'data:' in s)
for image in images:
for img in json.loads(image['data-a-dynamic-image']):
print(img)
打印:
https://images-na.ssl-images-amazon.com/images/I/41YEd80s6SL._SX384_BO1,200_.jpg
https://images-na.ssl-images-amazon.com/images/I/41YEd80s6SL._SX258_BO1,200_.jpg
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。