python小技巧之批量抓取美女图片


Posted in Python onJune 06, 2014

其中用到urllib2模块和正则表达式模块。下面直接上代码:

[/code]
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#通过urllib(2)模块下载网络内容
import urllib,urllib2,gevent
#引入正则表达式模块,时间模块
import re,time
from gevent import monkey

monkey.patch_all()

def geturllist(url):
    url_list=[]
    print url      
    s = urllib2.urlopen(url)
    text = s.read()
    #正则匹配,匹配其中的图片
    html = re.search(r'<ol.*</ol>', text, re.S)
    urls = re.finditer(r'<p><img src="(.+?)jpg" /></p>',html.group(),re.I)
    for i in urls:
        url=i.group(1).strip()+str("jpg")
        url_list.append(url)
    return url_list

def download(down_url):
    name=str(time.time())[:-3]+"_"+re.sub('.+?/','',down_url)
    print name
    urllib.urlretrieve(down_url, "D:\\TEMP\\"+name)

def getpageurl():
    page_list = []
    #进行列表页循环
    for page in range(1,700):
        url="http://jandan.net/ooxx/page-"+str(page)+"#comments"
        #把生成的url加入到page_list中
        page_list.append(url)
    print page_list
    return page_list
if __name__ == '__main__':
    jobs = []
    pageurl = getpageurl()[::-1]
    #进行图片下载
    for i in pageurl:
        for (downurl) in geturllist(i):
            jobs.append(gevent.spawn(download, downurl))
    gevent.joinall(jobs)
[/code]

程序不长才45行,不是太难,大家可以研究下,这里我只是抛砖引玉,大家可以根据原理开发出其他的抓取程序,呵呵,自己想去吧。。。我就不多说了~~

Python 相关文章推荐
Python分治法定义与应用实例详解
Jul 28 Python
对Python之gzip文件读写的方法详解
Feb 08 Python
python实现名片管理系统项目
Apr 26 Python
Python实现滑动平均(Moving Average)的例子
Aug 24 Python
Python实现快速排序的方法详解
Oct 25 Python
Django框架中间件定义与使用方法案例分析
Nov 28 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
基于Python的身份证验证识别和数据处理详解
Nov 14 Python
Python OpenCV中的numpy与图像类型转换操作
Dec 11 Python
python开发飞机大战游戏
Jul 15 Python
基于Python实现射击小游戏的制作
Apr 06 Python
Python自动化工具之实现Excel转Markdown表格
Apr 08 Python
Python学习笔记(二)基础语法
Jun 06 #Python
pycharm 使用心得(九)解决No Python interpreter selected的问题
Jun 06 #Python
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 #Python
pycharm 使用心得(七)一些实用功能介绍
Jun 06 #Python
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 #Python
pycharm 使用心得(五)断点调试
Jun 06 #Python
pycharm 使用心得(四)显示行号
Jun 05 #Python
You might like
PHP simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
PHP+JS三级菜单联动菜单实现方法
2016/02/24 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
php析构函数的具体用法小结
2014/03/11 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
2016/01/04 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
[02:11]完美世界DOTA2联赛10月28日赛事精彩集锦:来吧展示实力强劲
2020/10/29 DOTA
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
学python安装的软件总结
2019/10/12 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
大学生求职信范文应怎么写
2014/01/01 职场文书
债务纠纷委托书
2014/08/30 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书