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入门教程
Feb 08 Python
python如何通过protobuf实现rpc
Mar 06 Python
python编写简单爬虫资料汇总
Mar 22 Python
Python实现网站注册验证码生成类
Jun 08 Python
python实现Adapter模式实例代码
Feb 09 Python
python合并同类型excel表格的方法
Apr 01 Python
对Python3中bytes和HexStr之间的转换详解
Dec 04 Python
Python设计模式之简单工厂模式实例详解
Jan 22 Python
numpy.array 操作使用简单总结
Nov 08 Python
python logging.info在终端没输出的解决
May 12 Python
Python 如何定义匿名或内联函数
Aug 01 Python
Python监听剪切板实现方法代码实例
Nov 11 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
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
简单的PHP图片上传程序
2008/03/27 PHP
PHP中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
javascript 中对象的继承〔转贴〕
2007/01/22 Javascript
jQuery chili图片远处放大插件
2009/11/30 Javascript
IE iframe的onload方法分析小结
2010/01/07 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
Angularjs基础知识及示例汇总
2015/01/22 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
2016/01/26 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
JS实现在文本指定位置插入内容的简单示例
2017/12/22 Javascript
Vue组件通信入门之Provide和Inject机制
2019/12/29 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
Python实现随机漫步功能
2018/07/09 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
Python如何输出整数
2020/06/07 Python
python爬虫请求头设置代码
2020/07/28 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
电子商务毕业生求职信
2013/11/10 职场文书
文明学生事迹材料
2014/01/29 职场文书
益达广告词
2014/03/14 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
golang elasticsearch Client的使用详解
2021/05/05 Golang
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技