Python 爬取蜂鸟网的照片。。。
来源:互联网 发布:淘宝抢拍器哪个最好 编辑:程序博客网 时间:2024/04/28 20:16
初衷
上次兔子君问 如何下载 蜂鸟网 上图集的一张照片。打开之后,确实无法右键另存为。不应该啊,web上面还没有这么强的技术保护发布的图片。firebug查看,图片的搜索总是指向一个 a标签。这个 a 标签有一个 height:100%。应该是一个遮罩,用来给幻灯片浏览导航使用的。无意中也进行了简单的 盗图保护。
下载很简单,不过兔子先生的需求有变,需要下载一个图集,这样右键的行为,显然比较累。唔,想要下载一个图集,写脚本 爬虫了。爬一个图集下来,python这方面是好手。
分析
分析页面,每一个图集并不是 ajax 取照片,而是每一张照片一个页面。并且页面的URL地址很规律,某个值依次加一。例如 这个图集的所有照片:
http://travel.fengniao.com/slide/334/3344576_1.html#show
http://travel.fengniao.com/slide/334/3344576_2.html#show
都是 3344576_1, 3344576_2有变动,每一图都在一个特有的 img标签里。如下图:
问题的解决思路有了,用 python的 urllib2模块打开 url,这些 url 依次递增1,用 list 解析给 urllib2模块。当得到 web的html之后,再用 BeautifulSoup 解析文档,提取 img 的 url。
主要用到了 urllib2 的urlopen方法,和 BeautifulSoup 的findAll方法和 tag对象获取属性的方法。对于 BeautifulSoup 的使用方法,可以参考这个 Python BeautifulSoup 简单笔记 。
# target url# http://travel.fengniao.com/slide/334/3344576_%d.html# target picture# <img src="http://img2.zol.com.cn/product/101/538/ceDuLihKRGmck.png" name="img_share" id="mainPic" width="449" height="636" alt="">import urllib2from BeautifulSoup import BeautifulSoup# get the url of web which has the picture =>url resultsurlList = ['http://travel.fengniao.com/slide/334/3344576_%d.html' % i for i in range(1,40)]imgurl = []# open every url via urllib2,get the img tag via BeautifulSoupfor i in urlList:html = urllib2.urlopen(i)soup = BeautifulSoup(html)imgsResult = soup.findAll('img',id="mainPic")# imgurl.append([img['src'] for img in imgsResult])imgurl.append(imgsResult[0]['src'])# the resultprint imgurl
注意事项:
用了一个 list 解析获取 每一个对应的 web url urlList
=
[
'http://travel.fengniao.com/slide/334/3344576_%d.html'
%
i
for
i
in
range
(
1
,
40
)]
BeautifulSoup 的findAll方法中 name是 python中的保留字,应此用 id来查找确定元素。得到的元素是一个 BeautifulSoup Result,可以用 list的方法,找到img,则是 BeautifulSoup Tag对象,直接读取属性。
最后得到的是一个 含有目标照片的 url 地址集合。
BeautifulSoup 的 性能一般 。居然用了15s。或者我的方法还有待改善。 结果如图:
改进
得到地址之后,用软件 批量下载 就OK了。不过既然是爬虫,得到数据之后,也可以通过python的模块建立目录保存下载的图片。这方面就留着以后改进了。
原文地址 :Python 爬取蜂鸟网的照片。。。
- Python 爬取蜂鸟网的照片。。。
- Python 爬取蜂鸟网的照片
- python爬虫(爬取蜂鸟网图片)_创建文件夹
- python爬虫(爬取蜂鸟网高像素图片)_空网页,错误处理
- python爬虫爬取网上的照片
- python scrapy 爬取妹子图的照片
- python爬虫爬取涂鸦吧照片
- [Python]网络爬虫学习笔记,爬取豆瓣妹子上妹子的照片
- 《python爬虫实战》:爬取淘宝上MM的信息和照片
- Python爬取今日头条搜索的照片。使用requests+正则表达式
- Python爬虫实例(1)-爬取一张猫的照片
- python 爬取XX美图妹子照片
- python 使用selenium+urllib爬取淘宝MM照片
- 蜂鸟
- 蜂鸟
- 爬取百度贴吧某帖子的所有照片
- python3网络爬虫:爬取煎蛋网美女照片
- python批量下载色影无忌和蜂鸟的图片 爬虫小应用
- MVC模式的讲解
- 全国各地城市FM调频电台频率列表(上海北京广州深圳长沙武汉重庆)
- 关于audio的总结
- C++ 实现两线段是否相交、相交情况、若相交求出交点坐标
- 趋势操盘法则:资深操盘手6年60倍实战选股技法
- Python 爬取蜂鸟网的照片。。。
- 简明 Vim 练级攻略
- Android user tag detected on new module 解决办法
- jq实现浮层随着鼠标移动
- mysq 数据库导入过大数据时要修改phpini 的三个地方
- 实用SQL语句大全
- 转 Ant builder.xml 详解
- js操作Excel
- 程序员应当如何保持优秀