Python 在抓取图像url src时,获取数据:image/jpeg;base64
我试图使用python urllib2从网站上获取图像url 以下是获取html字符串的代码:Python 在抓取图像url src时,获取数据:image/jpeg;base64,python,html,image,web-scraping,Python,Html,Image,Web Scraping,我试图使用python urllib2从网站上获取图像url 以下是获取html字符串的代码: 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"
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;">
<img id="main-image" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQU....">
但是,当我读取我捕获的htmlStr时,图像被转换为base64图像,如下所示:
<img id="main-image" src="http://abcd.com/images/41Q2VRKA2QL._SY300_.jpg" alt="" rel="" style="display: inline; cursor: pointer;">
<img id="main-image" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQU....">
我想知道为什么会这样。有没有办法获取原始图像url而不是base64图像字符串
谢谢。你可以用
示例:
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']
你想搜刮什么网址?我想搜刮亚马逊的书页。这管用!我想知道也许我不应该使用htmlStr=urllib2.urlopen(req,timeout=15).read()。也许是.read()方法将图像url转换为base64图像。我正在使用lxml etree作为解析器。有没有一种方法可以让我仍然使用lxml etree并仍然正确获取图像url?@user1719599-您好。快进到2020年,这显然仍然是一个问题,至少对我来说是这样。你用lxml工作了吗?我也在使用BS4。上面的答案太单薄了,对我不起作用。@Fandango68嗨。我对这一点不是百分之百的了解,因为有一段时间没有使用BeautifulSoup,但是如果使用的解析器对soup对象上的方法有任何不同(如上所示),我会感到惊讶。也许你应该用你的错误/问题开始一个新的问题?