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字符串替换的2种方法
Nov 30 Python
深入理解Python中装饰器的用法
Jun 28 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
Python分支结构(switch)操作简介
Jan 17 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
Apr 26 Python
python异步存储数据详解
Mar 19 Python
使用pyplot.matshow()函数添加绘图标题
Jun 16 Python
基于python实现生成指定大小txt文档
Jul 20 Python
python读取xml文件方法解析
Aug 04 Python
Python 高效编程技巧分享
Sep 10 Python
Python开发.exe小工具的详细步骤
Jan 27 Python
Python机器学习之基础概述
May 19 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应用技巧
2008/03/27 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
js切换div css注意的细节
2012/12/10 Javascript
JS定时器实例详细分析
2013/10/11 Javascript
javascript从右边截取指定字符串的三种实现方法
2013/11/29 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
利用原生JavaScript获取元素样式只是获取而已
2014/10/08 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
python局部赋值的规则
2013/03/07 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
pyqt5自定义信号实例解析
2018/01/31 Python
python中列表的切片与修改知识点总结
2019/07/23 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
关于pandas的离散化,面元划分详解
2019/11/22 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
大学自我鉴定
2013/12/20 职场文书
写求职信有什么意义
2014/02/17 职场文书
采购部长岗位职责
2014/06/13 职场文书
巾帼文明岗事迹材料
2014/12/24 职场文书
python学习之panda数据分析核心支持库
2021/05/07 Python