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...相关推荐

  1. java 隐藏地址栏参数_要想在浏览器的地址栏上的URL中隐藏传输的参数,需要将form标签的method属性值设置为( )。 (5.0分)_学小易找答案...

    [填空题]若在JSP页面的不同作用域中有相同名称的对象,且EL表达式中又省略了相应的作用域类型名,则系统将会按照 . . . 的先后顺序查找相应对象. (20.0分) [简答题]AJAX异步请求过程中 ...

  2. getAttribute方法在IE6/7下获取href/src属性值的问题

    IE中的getAttribute方法与其他标准浏览器有很多不同,这里记录的是获取href/src属性值时的问题. 如将href=""或href="#",预期返回 ...

  3. python operator 多属性排序_Python爬取高颜值美女(爬虫+人脸检测+颜值检测)你能打几分?...

    1 数据源 知乎话题『美女』下所有问题中回答所出现的图片 2 抓取工具 Python 3,并使用第三方库 Requests.lxml.AipFace,代码共 100 + 行 3 必要环境 Mac / ...

  4. js获取html中img src属性值,javascript - js匹配img标签中的 src属性的值的正则怎么写?...

    伊谢尔伦2017-04-11 12:54:453楼 不好意思,JS这部分我现在也是自己学,误会了你的意思.我去查了一下,有这样一个思路,你先匹配出img,然后再从中匹配出src var str = & ...

  5. 写CSS选择器时标签的class属性值中有空格的问题

    1 问题描述 HTML代码片段为: <div class="alert alert-warning">请至"随书下载"下载本书的示例程序. < ...

  6. html+设置img+src属性值,javascript获取、设置修改img的src属性(get/setAttribute)

    在开发网站过程中,事先就设置好了图片img的src性,一般来说很少修改这个属性,网站加载时直接显示事先设置好的图片.但如果网页要求实现滚屏加载图片(动态加载图片),也就是一次不显示网页内的所有图片,当 ...

  7. Python getattr() 函数==>获取一个对象的属性值

    描述 getattr() 函数用于返回一个对象属性值. 语法 getattr 语法: getattr(object, name[, default]) 参数 object -- 对象. name -- ...

  8. PHP抓取页面中a标签的href属性值以及a中间内容

    $str = file_get_contents($zh_cn_url); $reg1='/<a href=\"(.*?)\".*?>(.*?)<\/a>/ ...

  9. python获取标签属性值_Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释

    更多python教程请到: 菜鸟教程www.piaodoo.com 人人影视www.sfkyty.com 16影视www.591319.com 星辰影院www.591319.com 一.Tag(标签) ...

最新文章

  1. wukong引擎源码分析之索引——part 2 持久化 直接set(key,docID数组)在kv存储里...
  2. python的优缺点有哪些-python语言的优缺点
  3. 自己做站点(二) 20块钱搞定一个企业站:域名amp;空间申请
  4. cv and cover letter part 1
  5. 【Codeforces】 Round #374 (Div. 2)
  6. java实现遍历树形菜单方法——数据库表的创建
  7. 细丝极恐的华为251事件
  8. 【kafka】kafka 控制台 消费报错 cant rebalance afer 4 retries
  9. 金字塔原理(Pyramid Principle)
  10. 【数据结构-串】手算KMP算法的next和nextval数组
  11. Arcscene教程
  12. 其实我们可以做自己的心理医生
  13. 网校装修,定义您的专属风格!
  14. 前端代码 (html css JavaScript DOM JSON)
  15. Rosalind第11题——ros_bio11_FIBD
  16. php实现html转word
  17. 奥鹏教师计算机培训总结,奥鹏信息技术应用能力提升培训总结交流
  18. 根据身份证号判断性别
  19. 用Java程序模拟实现新冠病毒传染
  20. Fastreport.Net用户手册:打印Bands

热门文章

  1. 386款PSP游戏的迅雷高速下载
  2. PDF转CAD怎么转?试试这个办法
  3. 【流媒体】视频技术的一些基础概念
  4. mysql查询工资大于某个员工_一个SQL实现薪水大于所在部门平均薪水的员工
  5. 理解数据库范式(转)
  6. DHCP Snooping-option82relay的原理及实例
  7. 新开的水果店怎么做营销策划,水果店的营销策划
  8. python图像运算、图像融合
  9. 我把废旧Android手机如何改造成Linux服务器
  10. 2016年Q1印度以太网交换机市值达1.126亿美元