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实现确认字符串是否包含指定字符串的实例
May 02 Python
python 自动去除空行的实例
Jul 24 Python
python读写csv文件并增加行列的实例代码
Aug 01 Python
PyQt+socket实现远程操作服务器的方法示例
Aug 22 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
利用pandas将非数值数据转换成数值的方式
Dec 18 Python
手把手教你进行Python虚拟环境配置教程
Feb 03 Python
Python Scrapy框架第一个入门程序示例
Feb 05 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
简单了解python调用其他脚本方法实例
Mar 26 Python
opencv 图像轮廓的实现示例
Jul 08 Python
通过实例解析python and和or使用方法
Nov 14 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设计模式 Mediator (中介者模式)
2011/06/26 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
2013/09/15 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
2016/12/02 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
vue.js图片转Base64上传图片并预览的实现方法
2018/08/02 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
详解JS预解析原理
2020/06/16 Javascript
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
英语翻译系毕业生求职信
2013/09/29 职场文书
简历上的自我评价怎么写
2014/01/28 职场文书
清华大学自主招生自荐信
2014/01/29 职场文书
就业协议书怎么填
2014/04/11 职场文书
办理信用卡工作证明
2014/09/30 职场文书
中考学习决心书
2015/02/04 职场文书
银行催款通知书
2015/04/17 职场文书
观看建国大业观后感
2015/06/01 职场文书
入党积极分子群众意见
2015/06/01 职场文书
导游经典开场白——导游词
2019/04/17 职场文书