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 相关文章推荐
python3.0 模拟用户登录,三次错误锁定的实例
Nov 02 Python
Django中Model的使用方法教程
Mar 07 Python
python购物车程序简单代码
Apr 18 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
在python中实现将一张图片剪切成四份的方法
Dec 05 Python
Python创建字典的八种方式
Feb 27 Python
python简单鼠标自动点击某区域的实例
Jun 25 Python
python 实现创建文件夹和创建日志文件的方法
Jul 07 Python
YUV转为jpg图像的实现
Dec 09 Python
Python基于class()实现面向对象原理详解
Mar 26 Python
Python MOCK SERVER moco模拟接口测试过程解析
Apr 13 Python
python基于Kivy写一个图形桌面时钟程序
Jan 28 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
The specified CGI application misbehaved by not returning a complete set of HTTP headers
2011/03/31 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
php接口数据加密、解密、验证签名
2015/03/12 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
js实现分页功能
2017/05/24 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
详谈for循环里面的break和continue语句
2017/07/20 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
最后说说Vue2 SSR 的 Cookies 问题
2018/05/25 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
Vue 的 v-model用法实例
2020/11/23 Vue.js
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python实现将excel文件转化成CSV格式
2018/03/22 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
2019/11/28 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
Python包资源下载路径报404解决方案
2020/11/05 Python
奇怪的鱼:Weird Fish
2018/03/18 全球购物
什么是servlet链?
2014/07/13 面试题
校园餐饮创业计划书
2014/01/10 职场文书
即将毕业大学生自荐信
2014/01/24 职场文书
一年级小学生评语
2014/04/22 职场文书
考核评语大全
2014/04/29 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
人大代表选举标语
2014/10/07 职场文书
公司年会开场白
2015/06/01 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
Python中glob库实现文件名的匹配
2021/06/18 Python
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技