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和perl实现批量对目录下电子书文件重命名的代码分享
Nov 21 Python
使用Python生成url短链接的方法
May 04 Python
解读Python中degrees()方法的使用
May 18 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
Nov 04 Python
利用Python批量生成任意尺寸的图片
Aug 29 Python
Python机器学习库scikit-learn安装与基本使用教程
Jun 25 Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 Python
Python中的几种矩阵乘法(小结)
Jul 10 Python
python 控制台单行刷新,多行刷新实例
Feb 19 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
Python读取ini配置文件传参的简单示例
Jan 05 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
Jan 22 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 面向对象 final类与final方法
2010/05/05 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
2011/05/02 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
PHP实现大数(浮点数)取余的方法
2017/02/18 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
JavaScript 解析Json字符串的性能比较分析代码
2009/12/16 Javascript
JavaScript Chart 插件整理
2010/06/18 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
javascript表单验证和Window详解
2014/12/11 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
JavaScript中的slice()方法使用详解
2015/06/06 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
Vue 中 filter 与 computed 的区别与用法解析
2019/11/21 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
微信小程序实现锚点跳转
2020/11/23 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
pyQt5实时刷新界面的示例
2019/06/25 Python
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
linux面试题参考答案(4)
2013/01/28 面试题
考试作弊检讨书大全
2014/02/18 职场文书
销售助理岗位职责
2014/02/21 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
学前班教学反思
2016/02/24 职场文书
教育教学工作反思
2016/02/24 职场文书
排查Tomcat进程假死的问题
2022/05/06 Servers