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访问sqlserver示例
Feb 10 Python
python实现斐波那契递归函数的方法
Sep 08 Python
python使用wxpython开发简单记事本的方法
May 20 Python
python 专题九 Mysql数据库编程基础知识
Mar 16 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
Mar 13 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
Apr 18 Python
PHP实现发送和接收JSON请求
Jun 07 Python
对python中词典的values值的修改或新增KEY详解
Jan 20 Python
Python多重继承之菱形继承的实例详解
Feb 12 Python
Python+PyQt5+MySQL实现天气管理系统
Jun 16 Python
Python应用实现处理excel数据过程解析
Jun 19 Python
如何使用Django Admin管理后台导入CSV
Nov 06 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 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
php输出文字乱码的解决方法
2019/10/04 PHP
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
JavaScript中的分号插入机制详细介绍
2015/02/11 Javascript
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
朴素贝叶斯算法的python实现方法
2014/11/18 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
pandas中的series数据类型详解
2019/07/06 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
Python random模块的使用示例
2020/10/10 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
canvas实现按住鼠标移动绘制出轨迹的示例代码
2018/02/05 HTML / CSS
惠普美国官方商店:HP Official Store
2016/08/28 全球购物
What is EJB
2016/07/22 面试题
保卫工作个人总结
2015/03/03 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
公司市场部岗位职责
2015/04/15 职场文书
怒海潜将观后感
2015/06/11 职场文书
学生早退检讨书(范文)
2019/08/19 职场文书
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL