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编程之序列操作实例详解
Jul 22 Python
python基础之入门必看操作
Jul 26 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
Nov 29 Python
Python 变量类型详解
Oct 10 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
python实现汽车管理系统
Nov 30 Python
Python获取网段内ping通IP的方法
Jan 31 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
Jun 26 Python
Python中调用其他程序的方式详解
Aug 06 Python
详解Python3定时器任务代码
Sep 23 Python
python小程序之飘落的银杏
Apr 17 Python
Python 中random 库的详细使用
Jun 03 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
2021年最新CPU天梯图
2021/03/04 数码科技
php面向对象全攻略 (十五) 多态的应用
2009/09/30 PHP
关于svn冲突的解决方法
2013/06/21 PHP
php获取apk包信息的方法
2014/08/15 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
JS控制表格隔行变色
2006/06/26 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
Javascript学习笔记之相等符号与严格相等符号
2014/11/23 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
2018/08/24 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
动态内存分配导致影响Javascript性能的问题
2018/12/18 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
JS数组属性去重并校验重复数据
2020/01/10 Javascript
详解React的回调渲染模式
2020/09/10 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
微信小程序绘制半圆(弧形)进度条
2020/11/18 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
python单元测试unittest实例详解
2015/05/11 Python
Python argv用法详解
2016/01/08 Python
Python实现的十进制小数与二进制小数相互转换功能
2017/10/12 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
Python底层封装实现方法详解
2020/01/22 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
2020/04/24 Python
运动会100米解说词
2014/01/23 职场文书
六查六看自查材料
2014/02/17 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
春季运动会开幕词
2015/01/28 职场文书
goland 清除所有的默认设置操作
2021/04/28 Golang