Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在抓取图像url src时,获取数据:image/jpeg;base64_Python_Html_Image_Web Scraping - Fatal编程技术网

Python 在抓取图像url src时,获取数据:image/jpeg;base64

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"

我试图使用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" 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对象上的方法有任何不同(如上所示),我会感到惊讶。也许你应该用你的错误/问题开始一个新的问题?