python实现爬虫下载美女图片


Posted in Python onJuly 14, 2015

本次爬取的贴吧是百度的美女吧,给广大男同胞们一些激励

在爬取之前需要在浏览器先登录百度贴吧的帐号,各位也可以在代码中使用post提交或者加入cookie

爬行地址:http://tieba.baidu.com/f?kw=%E7%BE%8E%E5%A5%B3&ie=utf-8&pn=0

#-*- coding:utf-8 -*-
import urllib2
import re
import requests
from lxml import etree

这些是要导入的库,代码并没有使用正则,使用的是xpath,正则困难的童鞋可以尝试使用下

推荐各位先使用基本库来写,这样可以学习到更多

links=[]
#遍历url的地址
k=1


print u'请输入最后的页数:'
endPage=int(raw_input())

#最终的页数
(r'\d+(?=\s*页) 这是一个比较通用的正则抓取总页数的代码,当然最后要group

#这里是手动输入页数,避免内容太多

for j in range(0,endPage):
  url='http://tieba.baidu.com/f?kw=%E7%BE%8E%E5%A5%B3&ie=utf-8&pn='+str(j)


#页数的url地址
  html=urllib2.urlopen(url).read()







#读取首页的内容
  selector=etree.HTML(html)






#转换为xml,用于在接下来识别
  links=selector.xpath('//div/a[@class="j_th_tit"]/@href')



#抓取当前页面的所有帖子的url

#大家可以使用浏览器自带的源码查看工具,在指定目标处查看元素,这样更快捷

  for i in links:
    url1="http://tieba.baidu.com"+i


#因为爬取到的地址是相对地址,所以要加上百度的domain
    html2=urllib2.urlopen(url1).read()


#读取当前页面的内容
    selector=etree.HTML(html2)




#转换为xml用于识别
    link=selector.xpath('//img[@class="BDE_Image"]/@src')

#抓取图片,各位也可以更换为正则,或者其他你想要的内容

#此处就是遍历下载
    for each in link:
      #print each
      print u'正在下载%d'%k
      fp=open('image/'+str(k)+'.bmp','wb')


#下载在当前目录下 image文件夹内,图片格式为bmp
      image1=urllib2.urlopen(each).read()



#读取图片的内容
      fp.write(image1)








#写入图片
      fp.close()
      k+=1

#k就是文件的名字,每下载一个文件就加1

print u'下载完成!'

如果想要爬取其他站点的内容,大家可以参考一下

Python 相关文章推荐
python中文乱码的解决方法
Nov 04 Python
用Python从零实现贝叶斯分类器的机器学习的教程
Mar 31 Python
python开发环境PyScripter中文乱码问题解决方案
Sep 11 Python
Django查询数据库的性能优化示例代码
Sep 24 Python
matplotlib savefig 保存图片大小的实例
May 24 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
Apr 01 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
May 13 Python
Python Numpy 自然数填充数组的实现
Nov 28 Python
python 消除 futureWarning问题的解决
Dec 25 Python
python画环形图的方法
Mar 25 Python
python 提高开发效率的5个小技巧
Oct 19 Python
Python基于Faker假数据构造库
Nov 30 Python
Python实现查找系统盘中需要找的字符
Jul 14 #Python
Python删除空文件和空文件夹的方法
Jul 14 #Python
Python实现批量将word转html并将html内容发布至网站的方法
Jul 14 #Python
Python删除windows垃圾文件的方法
Jul 14 #Python
Python简单计算文件夹大小的方法
Jul 14 #Python
Python判断直线和矩形是否相交的方法
Jul 14 #Python
Python下Fabric的简单部署方法
Jul 14 #Python
You might like
PHP MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
Jquery动态添加输入框的方法
2015/05/29 Javascript
Node.js开发者必须了解的4个JS要点
2016/02/21 Javascript
JS实现“隐藏与显示”功能(多种方法)
2016/11/24 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
nodejs之koa2请求示例(GET,POST)
2018/08/07 NodeJs
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
echarts统计x轴区间的数值实例代码详解
2019/07/07 Javascript
Python 错误和异常小结
2013/10/09 Python
python获取外网IP并发邮件的实现方法
2017/10/01 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
如何使用Python抓取网页tag操作
2020/02/14 Python
keras实现多种分类网络的方式
2020/06/11 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
python的flask框架难学吗
2020/07/31 Python
厉行勤俭节约倡议书
2014/05/16 职场文书
和谐家庭事迹材料
2014/12/20 职场文书
会计专业自荐信范文
2019/05/22 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python
python基础入门之字典和集合
2021/06/13 Python
上个世纪50年代的可穿戴技术:无线电帽子
2022/02/18 无线电
Nginx实现会话保持的两种方式
2022/03/18 Servers
Python中requests库的用法详解
2022/06/05 Python