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 相关文章推荐
利用Python的装饰器解决Bottle框架中用户验证问题
Apr 24 Python
举例讲解Django中数据模型访问外键值的方法
Jul 21 Python
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
pycharm 主题theme设置调整仿sublime的方法
May 23 Python
python破解zip加密文件的方法
May 31 Python
ubuntu 16.04下python版本切换的方法
Jun 14 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
详解numpy.meshgrid()方法使用
Aug 01 Python
Django命名URL和反向解析URL实现解析
Aug 09 Python
python和go语言的区别是什么
Jul 20 Python
matplotlib 画双轴子图无法显示x轴的解决方法
Jul 27 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中copy on write写时复制机制介绍
2014/05/13 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
浅谈COOKIE和SESSION区别
2015/07/19 PHP
PHP发送短信代码分享
2015/08/11 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
javascript StringBuilder类实现
2008/12/22 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
js实现页面转发功能示例代码
2013/08/05 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
python字典get()方法用法分析
2015/04/17 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
pycharm的python_stubs问题
2020/04/08 Python
学生党员思想汇报
2013/12/28 职场文书
酒店出纳岗位职责
2013/12/29 职场文书
党性分析材料格式
2014/12/19 职场文书
追悼会答谢词
2015/01/05 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
比较node.js和Deno
2021/04/27 Javascript
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
java executor包参数处理功能 
2022/02/15 Java/Android
在 Python 中利用 Pool 进行多线程
2022/04/24 Python