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操作数据库之sqlite3打开数据库、删除、修改示例
Mar 13 Python
浅析python 中__name__ = '__main__' 的作用
Jul 05 Python
python将unicode转为str的方法
Jun 21 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
python利用ffmpeg进行录制屏幕的方法
Jan 10 Python
详解如何管理多个Python版本和虚拟环境
May 10 Python
Django 创建新App及其常用命令的实现方法
Aug 04 Python
py-charm延长试用期限实例
Dec 22 Python
python爬虫请求头设置代码
Jul 28 Python
Python 使用生成器代替线程的方法
Aug 04 Python
详解python tkinter 图片插入问题
Sep 03 Python
Python关于拓扑排序知识点讲解
Jan 04 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
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
2008/03/22 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
js中符号转意问题示例探讨
2013/08/19 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
javascript网页随机点名实现过程解析
2019/10/15 Javascript
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
用Python从零实现贝叶斯分类器的机器学习的教程
2015/03/31 Python
Python函数中*args和**kwargs来传递变长参数的用法
2016/01/26 Python
Python编程修改MP3文件名称的方法
2017/04/19 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
python下PyGame的下载与安装过程及遇到问题
2019/08/04 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
python Tornado框架的使用示例
2020/10/19 Python
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
印度最大的网上花店:Ferns N Petals(鲜花、礼品和蛋糕)
2017/10/16 全球购物
英国领先的高级美容和在线皮肤诊所:Face the Future
2020/06/17 全球购物
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
专业毕业生个性的自我评价
2013/10/03 职场文书
函授毕业自我鉴定
2014/02/04 职场文书
优秀教导主任事迹材料
2014/05/09 职场文书
python 三边测量定位的实现代码
2021/04/22 Python
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
2021/05/21 Python