python爬虫入门教程之糗百图片爬虫代码分享


Posted in Python onSeptember 02, 2014

学习python少不了写爬虫,不仅能以点带面地学习、练习使用python,爬虫本身也是有用且有趣的,大量重复性的下载、统计工作完全可以写一个爬虫程序完成。

用python写爬虫需要python的基础知识、涉及网络的几个模块、正则表达式、文件操作等知识。昨天在网上学习了一下,写了一个爬虫自动下载「糗事百科」里面的图片。源代码如下:

# -*- coding: utf-8 -*- 

# 上面那句让代码里支持中文
#---------------------------------------  

#   程序:糗百图片爬虫  

#   版本:0.1  

#   作者:赵伟  

#   日期:2013-07-25  

#   语言:Python 2.7  

#   说明:能设置下载的页数。没有做更多抽象和交互方面的优化。  

#---------------------------------------
import urllib2

import urllib

import re
#正则表达式,用来抓取图片的地址

pat = re.compile('<div class="thumb">\\n<img src=\"(ht.*?)\".*?>')
#用来合成网页的URL

nexturl1 = "http://m.qiushibaike.com/imgrank/page/"

nexturl2 = "?s=4582487&slow"
#页数计数

count = 1
#设置抓取的页数

while count < 3:
    print "Page " + str(count) + "\n"

    myurl = nexturl1 + str(count) + nexturl2

    myres = urllib2.urlopen(myurl)#抓取网页

    mypage = myres.read()#读取网页内容

    ucpage = mypage.decode("utf-8") #转码
    mat = pat.findall(ucpage)#用正则表达式抓取图片地址

        

    count += 1;

    

    if len(mat):

        for item in mat:

            print "url: " + item + "\n"

            fnp = re.compile('/(\w+\.\w+)$')#下面三行分离出图片文件的名称

            fnr = fnp.findall(item)

            fname = fnr[0]

            urllib.urlretrieve(item, fname)#下载图片

      

    else:

        print "no data"

使用方法:新建一个practice文件夹,将源代码保存为qb.py文件,并放在practice文件夹中,在命令行里执行python qb.py,即开始下载图片。可以修改源代码里面的while语句设置下载的页数。

Python 相关文章推荐
python快速查找算法应用实例
Sep 26 Python
Python中的面向对象编程详解(下)
Apr 13 Python
玩转python爬虫之cookie使用方法
Feb 17 Python
如何用itertools解决无序排列组合的问题
May 18 Python
详解python中的线程
Feb 10 Python
深入理解Python爬虫代理池服务
Feb 28 Python
python 2.7.14安装图文教程
Apr 08 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
Apr 05 Python
Windows10下 python3.7 安装 facenet的教程
Sep 10 Python
如何使用python传入不确定个数参数
Feb 18 Python
python实现图片九宫格分割的示例
Apr 25 Python
人工智能深度学习OpenAI baselines的使用方法
May 20 Python
python批量同步web服务器代码核心程序
Sep 01 #Python
寻找网站后台地址的python脚本
Sep 01 #Python
python批量修改文件名的实现代码
Sep 01 #Python
python中List的sort方法指南
Sep 01 #Python
Python抓取京东图书评论数据
Aug 31 #Python
Python深入学习之内存管理
Aug 31 #Python
Python深入学习之装饰器
Aug 31 #Python
You might like
理解和运用PHP中的多态性[译]
2011/08/02 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
extjs form textfield的隐藏方法
2008/12/29 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
2016/01/27 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
2016/12/27 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
详解VUE 数组更新
2017/12/16 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
Python标准库内置函数complex介绍
2014/11/25 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
2017/07/13 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
Python之批量创建文件的实例讲解
2018/05/10 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
Python登录注册验证功能实现
2018/06/18 Python
python读取Kafka实例
2019/12/23 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
React配置子路由的实现
2021/06/03 Javascript
使用Ajax实现进度条的绘制
2022/04/07 Javascript
Java无向树分析 实现最小高度树
2022/04/09 Javascript
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle