博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
练手项目3:访问图像网站,查找某类型图片,下载查询结果
阅读量:5882 次
发布时间:2019-06-19

本文共 1175 字,大约阅读时间需要 3 分钟。

一般常用爬虫下载文本,图片,视频,声音。此处以下载图片为例,图片也是相对最容易。

#-*- coding:utf-8 -*-import os,re,requests#获取图片链接(以百度图片为例,因为部分参考了voidsky_很有趣儿的爬虫分享)keyword=raw_input('please input what you want to serch:')url='https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word='+keyword+'&ct=201326592&ic=0&lm=-1&width=&height=&v=flip'page=requests.get(url).textpic_link=re.findall('"objURL":"(.*?)",',page,re.S)#将图片文件写入本地i=1for item in pic_link:#需要添加捕获异常,因为不是所有图片都能下载    try:        pic=requests.get(item).content    except requests.exceptions.ConnectionError:        print 'Sorry.The current pic is not avilible.'        continue    filename=str(i)+('.jpg')    path=os.path.join('F:','001',filename)#这个地址是我电脑的地址,可修改输出地址    file=open(path,'wb')    file.write(pic)    file.close()    print ('have down', i)    i+=1print ('download' ,i-1)

总结和反思:

1、url变量本身就是str类型,无需纠结‘ ’或“ ”;
2、requests.get().text 获取了链接地址的源代码文本;
requests.get().text 获取链接地址的二进制内容,用于将图片,声音,视频等写入这些文件中;
3、涉及这样批量下载,需要处理捕获异常,不然程序就会在出错处中断,不会继续运行;
4、continue 使得程序即使报错了,也能继续下一个循环,即图片下载;
5、在正则匹配中re.S参数设置,表示把字符串当做一个整体,n也当做字符串而不是换行,不因换行而重新匹配,可跨行匹配,。
6、MP3、MP4格式的文件下载,只要抓包或者F12得到请求链接,那么将上面的程序稍稍改动一下,即可下载。比如:
只要能试听,就会有链接。
获取歌曲请求连接

声明:部分参考了voidsky_很有趣儿的爬虫分享:

转载地址:http://vkvix.baihongyu.com/

你可能感兴趣的文章
commandLink/commandButton/ajax backing bean action/listener method not invoked (转)
查看>>
开发进度——4
查看>>
Akka actor tell, ask 函数的实现
查看>>
Netty 4.1.35.Final 发布,经典开源 Java 网络服务框架
查看>>
js判断checkbox是否选中
查看>>
Eclipse中修改代码格式
查看>>
GRUB Legacy
查看>>
关于 error: LINK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案...
查看>>
Linux 进程中 Stop, Park, Freeze【转】
查看>>
文件缓存
查看>>
PHP盛宴——经常使用函数集锦
查看>>
重写 Ext.form.field 扩展功能
查看>>
Linux下的搜索查找命令的详解(locate)
查看>>
福利丨所有AI安全的讲座里,这可能是最实用的一场
查看>>
开发完第一版前端性能监控系统后的总结(无代码)
查看>>
Python多版本情况下四种快速进入交互式命令行的操作技巧
查看>>
MySQL查询优化
查看>>
【Redis源码分析】如何在Redis中查找大key
查看>>
android app启动过程(转)
查看>>
安装gulp及相关插件
查看>>