python爬取图片链接标签的src属性值_python爬取图片遇见src乱码: data:image/png;base64...
python爬取图片遇见src乱码: data:image/png;base64
向爬取自己喜欢的图片,但是在爬取下来的代码当中图片的src会出现乱码的情况:data:image/png;base64。搞了我好长时间,试过伪装headers,也试过通过修改网页js的内容来让img的src显示出来,也试过修改div的display属性,但是全部都没用,最后了解了才知道,这是Data URI scheme。
一:Data URI scheme:
目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到火狐的地址栏中并转到,就能看到它了,一张1X36的白灰png图片
数据分类:data表示取得数据的协定名称,image/png 是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/png文件base64编码后的数据
这样写的好处(对我这种萌新来说简直灾难):图像文件的内容直接写在了HTML 文件中,节省了一个HTTP 请求。
二:使用python爬取解决的方法
解决思路:
它就是普通的 属性值。使用你的能够解析 html 的解析器,找到 image element,取得它的 src 属性值,将base64 格式的字符串转为 byte[ ],然后放到 MemoryStream 中供 Image 控件读取,画出图片。(如果只是输出,得到 byte[ ] 数据结构即可)
举例:
string txt = @"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAAARCAMAAAArMfRlAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6J";
var tmpArr= txt.Split(',');
byte[] bytes= Convert.FromBase64String(tmpArr[1]);
using (MemoryStream ms=new MemoryStream(bytes))
{
ms.Write(bytes, 0, bytes.Length);
var img=Image.FromStream(ms, true);
img.Save("demo.png");
}
爬取图片的时候,使用python中的bs64来编码Data URI:
#使用BeautifulSoup来获取对应的标签的属性值:使用点get,里面再加一个属性值的字符串就好了,ok
strings=str(bs.find(name="img",attrs={"class":"comicimg"}).get('src'))#解码bs64格式的Data URI
'''1.pip导入base64的包,这个不用pip下载,pycharm自带
2.将src的前面编码方式和后面的码分离出来,两者使用逗号相连,而且只有一个
3.使用b64decode编码器编译,并储存到字符节数组data里面
4.将其字符集写入文件当中,就会生成所需要的文件(为什么导出来的图片是白板??)'''head1,encode=strings.split(',',1)
data=b64decode(encode)
with open("image_src.png","wb") as f:
f.write(data)
f.close()
注意:本人暂时还没有成功。。。。。。待续。。。
python爬取图片链接标签的src属性值_python爬取图片遇见src乱码: data:image/png;base64...相关推荐
- java 隐藏地址栏参数_要想在浏览器的地址栏上的URL中隐藏传输的参数,需要将form标签的method属性值设置为( )。 (5.0分)_学小易找答案...
[填空题]若在JSP页面的不同作用域中有相同名称的对象,且EL表达式中又省略了相应的作用域类型名,则系统将会按照 . . . 的先后顺序查找相应对象. (20.0分) [简答题]AJAX异步请求过程中 ...
- getAttribute方法在IE6/7下获取href/src属性值的问题
IE中的getAttribute方法与其他标准浏览器有很多不同,这里记录的是获取href/src属性值时的问题. 如将href=""或href="#",预期返回 ...
- python operator 多属性排序_Python爬取高颜值美女(爬虫+人脸检测+颜值检测)你能打几分?...
1 数据源 知乎话题『美女』下所有问题中回答所出现的图片 2 抓取工具 Python 3,并使用第三方库 Requests.lxml.AipFace,代码共 100 + 行 3 必要环境 Mac / ...
- js获取html中img src属性值,javascript - js匹配img标签中的 src属性的值的正则怎么写?...
伊谢尔伦2017-04-11 12:54:453楼 不好意思,JS这部分我现在也是自己学,误会了你的意思.我去查了一下,有这样一个思路,你先匹配出img,然后再从中匹配出src var str = & ...
- 写CSS选择器时标签的class属性值中有空格的问题
1 问题描述 HTML代码片段为: <div class="alert alert-warning">请至"随书下载"下载本书的示例程序. < ...
- html+设置img+src属性值,javascript获取、设置修改img的src属性(get/setAttribute)
在开发网站过程中,事先就设置好了图片img的src性,一般来说很少修改这个属性,网站加载时直接显示事先设置好的图片.但如果网页要求实现滚屏加载图片(动态加载图片),也就是一次不显示网页内的所有图片,当 ...
- Python getattr() 函数==>获取一个对象的属性值
描述 getattr() 函数用于返回一个对象属性值. 语法 getattr 语法: getattr(object, name[, default]) 参数 object -- 对象. name -- ...
- PHP抓取页面中a标签的href属性值以及a中间内容
$str = file_get_contents($zh_cn_url); $reg1='/<a href=\"(.*?)\".*?>(.*?)<\/a>/ ...
- python获取标签属性值_Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
更多python教程请到: 菜鸟教程www.piaodoo.com 人人影视www.sfkyty.com 16影视www.591319.com 星辰影院www.591319.com 一.Tag(标签) ...
最新文章
- wukong引擎源码分析之索引——part 2 持久化 直接set(key,docID数组)在kv存储里...
- python的优缺点有哪些-python语言的优缺点
- 自己做站点(二) 20块钱搞定一个企业站:域名amp;空间申请
- cv and cover letter part 1
- 【Codeforces】 Round #374 (Div. 2)
- java实现遍历树形菜单方法——数据库表的创建
- 细丝极恐的华为251事件
- 【kafka】kafka 控制台 消费报错 cant rebalance afer 4 retries
- 金字塔原理(Pyramid Principle)
- 【数据结构-串】手算KMP算法的next和nextval数组
- Arcscene教程
- 其实我们可以做自己的心理医生
- 网校装修,定义您的专属风格!
- 前端代码 (html css JavaScript DOM JSON)
- Rosalind第11题——ros_bio11_FIBD
- php实现html转word
- 奥鹏教师计算机培训总结,奥鹏信息技术应用能力提升培训总结交流
- 根据身份证号判断性别
- 用Java程序模拟实现新冠病毒传染
- Fastreport.Net用户手册:打印Bands