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中将字典转换成其json字符串
Jul 16 Python
Python类的定义、继承及类对象使用方法简明教程
May 08 Python
python实现二叉树的遍历
Dec 11 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
Mar 30 Python
python使用tcp实现局域网内文件传输
Mar 20 Python
Python基于scipy实现信号滤波功能
May 08 Python
Python 计算任意两向量之间的夹角方法
Jul 05 Python
python实现键盘输入的实操方法
Jul 16 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
Jul 23 Python
使用Python快乐学数学Github万星神器Manim简介
Aug 07 Python
tensorflow2.0的函数签名与图结构(推荐)
Apr 28 Python
Docker如何部署Python项目的实现详解
Oct 26 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部分常见问题总结
2006/10/09 PHP
php中的strpos使用示例
2014/02/27 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
Yii的Srbac插件用法详解
2016/07/14 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
2017/11/25 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
2012/10/24 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
document.forms[].submit()使用介绍
2014/02/19 Javascript
js css 实现遮罩层覆盖其他页面元素附图
2014/09/22 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
2016/05/03 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
python实现的登录和操作开心网脚本分享
2014/07/09 Python
详解Python爬虫的基本写法
2016/01/08 Python
python 获取网页编码方式实现代码
2017/03/11 Python
apache部署python程序出现503错误的解决方法
2017/07/24 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
Python装饰器原理与用法分析
2018/04/30 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
中科方德软件测试面试题
2016/04/21 面试题
中学生个人自我评价
2014/02/06 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
2014年学校工作总结
2014/11/20 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
logback 实现给变量指定默认值
2021/08/30 Java/Android
Java 在线考试云平台的实现
2021/11/23 Java/Android