抓取图片URL时,获取到data:image/jpeg;base64

4 投票
1 回答
4520 浏览
提问于 2025-04-17 21:52

我在用Python的urllib2库从一个网站上抓取图片的链接。

这是我用来获取网页内容的代码:

req = urllib2.Request(url, headers = urllib2Header)
htmlStr = urllib2.urlopen(req, timeout=15).read()

当我在浏览器中查看时,图片的HTML代码是这样的:

<img id="main-image" src="http://abcd.com/images/41Q2VRKA2QL._SY300_.jpg" alt="" rel="" style="display: inline; cursor: pointer;">

但是,当我从我抓取的htmlStr中读取时,图片却变成了base64格式的字符串,看起来像这样:

<img id="main-image" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQU....">

我在想,为什么会这样?有没有办法获取到原始的图片链接,而不是这个base64的字符串呢?

谢谢。

1 个回答

0

你可以使用 BeautifulSoup 这个工具。

示例:

import urllib2
from bs4 import BeautifulSoup

url = "www.theurlyouwanttoscrape.com"
html = urllib2.urlopen(url)

soup = BeautifulSoup(html)

img_src = soup.find('img', {'id':'main_image'})['src']

撰写回答