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基础知识小结之集合
Nov 25 Python
Python中的异常处理相关语句基础学习笔记
Jul 11 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
Python实现简单http服务器
Apr 12 Python
每天迁移MySQL历史数据到历史库Python脚本
Apr 13 Python
浅谈Django的缓存机制
Aug 23 Python
Python中反射和描述器总结
Sep 23 Python
使用turtle绘制五角星、分形树
Oct 06 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
Oct 25 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
Apr 23 Python
python 字符串格式化的示例
Sep 21 Python
详解OpenCV曝光融合
Apr 29 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获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
关于IE BUG与字符串截取substr的解决办法
2013/04/10 Javascript
JS获取鼠标坐标的实例方法
2013/07/18 Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
2014/04/12 Javascript
Express.JS使用详解
2014/07/17 Javascript
jQuery链式操作实例分析
2015/11/16 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
vue-router命名视图的使用讲解
2019/01/19 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
2020/02/01 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
pyside写ui界面入门示例
2014/01/22 Python
Python中字符编码简介、方法及使用建议
2015/01/08 Python
Python模拟三级菜单效果
2017/09/11 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
python读写csv文件实例代码
2019/07/05 Python
pytorch:torch.mm()和torch.matmul()的使用
2019/12/27 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
Django中ORM的基本使用教程
2020/12/22 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
四种会话跟踪技术
2015/05/20 面试题
主持人演讲稿范文
2013/12/28 职场文书
自考毕业自我鉴定
2014/03/18 职场文书
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
致运动员加油稿
2015/07/21 职场文书
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技