python制作花瓣网美女图片爬虫


Posted in Python onOctober 28, 2015

花瓣图片的加载使用了延迟加载的技术,源代码只能下载20多张图片,修改后基本能下载所有的了,只是速度有点慢,后面再优化下

import urllib, urllib2, re, sys, os,requests
path=r"C:\wqa\beautify"
url = 'http://huaban.com/favorite/beauty'
#http://huaban.com/explore/zhongwenlogo/?ig1un9tq&max=327773629&limit=20&wfl=1
i_headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36"}
count=0

def urlHandle(url):
  req = urllib2.Request(url, headers=i_headers)
  html = urllib2.urlopen(req).read()
  reg = re.compile(r'"pin_id":(\d+),.+?"file":{"farm":"farm1", "bucket":"hbimg",.+?"key":"(.*?)",.+?"type":"image/(.*?)"', re.S)
  groups = re.findall(reg, html)
  return groups

def imgHandle(groups):
  if groups:
    for att in groups:  
      pin_id = att[0]
      att_url = att[1] + '_fw236'
      img_type = att[2]
      img_url = 'http://img.hb.aicdn.com/' + att_url

      r = requests.get(img_url)
      with open(path + att_url + '.' + img_type, 'wb') as fd:
        for chunk in r.iter_content():
          fd.write(chunk)

groups = urlHandle(url)
imgHandle(groups)

while(groups):
  count+=1
  print count
  pin_id = groups[-1][0]
  print pin_id
  urltemp = url+'/?max=' + str(pin_id) + '&limit=' + str(20) + '&wfl=1'
  print(urltemp)
  groups = urlHandle(urltemp)
  #print groups
  imgHandle(groups)
Python 相关文章推荐
关于你不想知道的所有Python3 unicode特性
Nov 28 Python
Python正则表达式教程之三:贪婪/非贪婪特性
Mar 02 Python
分析Python中解析构建数据知识
Jan 20 Python
使用Python读取安卓手机的屏幕分辨率方法
Mar 31 Python
python3判断url链接是否为404的方法
Aug 10 Python
Python DataFrame一列拆成多列以及一行拆成多行
Aug 06 Python
如何在django中添加日志功能
Feb 06 Python
python实现图像拼接功能
Mar 23 Python
python可以用哪些数据库
Jun 22 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
Python Opencv实现单目标检测的示例代码
Sep 08 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
Jun 03 Python
python制作最美应用的爬虫
Oct 28 #Python
python使用wmi模块获取windows下的系统信息 监控系统
Oct 27 #Python
详解JavaScript编程中的window与window.screen对象
Oct 26 #Python
深入讲解Python中的迭代器和生成器
Oct 26 #Python
Windows下使Python2.x版本的解释器与3.x共存的方法
Oct 25 #Python
解析Python编程中的包结构
Oct 25 #Python
Python实现获取域名所用服务器的真实IP
Oct 25 #Python
You might like
PHP新建类问题分析及解决思路
2015/11/19 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
用JQuery调用Session的实现代码
2010/10/29 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP详解
2015/03/05 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
微信小程序 radio单选框组件详解及实例代码
2017/01/10 Javascript
详解使用fetch发送post请求时的参数处理
2017/04/05 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
[43:41]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
详解Django中六个常用的自定义装饰器
2018/07/04 Python
详解Python下Flask-ApScheduler快速指南
2018/11/04 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
Python函数式编程指南:对生成器全面讲解
2019/11/19 Python
HTML5新标签兼容——> 的两种方法
2018/09/12 HTML / CSS
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
毕业生造价工程师求职信
2013/10/17 职场文书
小松树教学反思
2014/02/11 职场文书
共青团员自我评价范文
2014/09/14 职场文书
国庆节主题班会
2015/08/15 职场文书
2019银行竞聘书
2019/06/21 职场文书
关于python爬虫应用urllib库作用分析
2021/09/04 Python
MySQL限制查询和数据排序介绍
2022/03/25 MySQL