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中正则表达式的使用详解
Oct 17 Python
python基于multiprocessing的多进程创建方法
Jun 04 Python
python组合无重复三位数的实例
Nov 13 Python
python修改txt文件中的某一项方法
Dec 29 Python
python 用for循环实现1~n求和的实例
Feb 01 Python
Python实现合并excel表格的方法分析
Apr 13 Python
Python序列化与反序列化pickle用法实例
Nov 11 Python
Python3 获取文件属性的方式(时间、大小等)
Mar 12 Python
浅析python 定时拆分备份 nginx 日志的方法
Apr 27 Python
Python使用OpenPyXL处理Excel表格
Jul 02 Python
python 批量将中文名转换为拼音
Feb 07 Python
python本地文件服务器实例教程
May 02 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网页后退不再出现过期
2007/03/08 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
2011/06/13 PHP
PHP入门之常量简介和系统常量
2014/05/12 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
2018/04/27 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
基于AGS JS开发自定义贴图图层
2017/03/31 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
vue监听scroll的坑的解决方法
2017/09/07 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
JavaScript 日期时间选择器一些小结
2018/04/02 Javascript
浅入深出Vue之组件使用
2019/07/11 Javascript
vue 路由子组件created和mounted不起作用的解决方法
2019/11/05 Javascript
使用Python编写一个模仿CPU工作的程序
2015/04/16 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
Django 自动生成api接口文档教程
2019/11/19 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
浅谈Python中os模块及shutil模块的常规操作
2020/04/03 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
养殖人员的创业计划书范文
2013/12/26 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
python游戏开发之pygame实现接球小游戏
2022/04/22 Python
Django框架中模型的用法
2022/06/10 Python