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支持断点续传的多线程下载示例
Jan 16 Python
python实现颜色rgb和hex相互转换的函数
Mar 19 Python
Python实现批量下载图片的方法
Jul 08 Python
Python基本语法经典教程
Mar 11 Python
一个基于flask的web应用诞生 组织结构调整(7)
Apr 11 Python
Python代码块批量添加Tab缩进的方法
Jun 25 Python
Django项目开发中cookies和session的常用操作分析
Jul 03 Python
python七夕浪漫表白源码
Apr 05 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
Jun 19 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
Nov 21 Python
python爬虫构建代理ip池抓取数据库的示例代码
Sep 22 Python
TensorFlow的环境配置与安装方法
Feb 20 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中实现中文字符进制转换原理分析
2011/12/06 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
2010/05/10 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
JavaScript中window、doucment、body的解释
2013/08/14 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
jQuery实现商品活动倒计时
2015/10/16 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
2016/06/26 Javascript
Javascript自定义事件详解
2017/01/13 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
2017/06/12 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
JS实现百度搜索框
2021/02/25 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
python将回车作为输入内容的实例
2018/06/23 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
用python打印菱形的实操方法和代码
2019/06/25 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
普通大学毕业生自荐信范文
2014/02/23 职场文书
篝火晚会主持词
2014/03/25 职场文书
文明市民先进事迹
2014/05/15 职场文书
面试复试通知单
2015/04/24 职场文书