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 装饰器功能以及函数参数使用介绍
Jan 27 Python
python实现超简单端口转发的方法
Mar 13 Python
python实现的文件同步服务器实例
Jun 02 Python
python实现计算倒数的方法
Jul 11 Python
一份python入门应该看的学习资料
Apr 11 Python
python3库numpy数组属性的查看方法
Apr 17 Python
python 显示数组全部元素的方法
Apr 19 Python
利用Python正则表达式过滤敏感词的方法
Jan 21 Python
Python 实现自动获取种子磁力链接方式
Jan 16 Python
python Plotly绘图工具的简单使用
Mar 03 Python
python 获取谷歌浏览器保存的密码
Jan 06 Python
Python实现机器学习算法的分类
Jun 03 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 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
js的.innerHTML = &quot;&quot;IE9下显示有错误的解决方法
2013/09/16 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
详解node.js的http模块实例演示
2018/07/12 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
antd组件Upload实现自己上传的实现示例
2018/12/18 Javascript
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
python输出指定月份日历的方法
2015/04/23 Python
python实现百度语音识别api
2018/04/10 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
python如何删除列为空的行
2020/07/17 Python
Python3 用什么IDE开发工具比较好
2020/11/28 Python
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
意大利奢侈品购物网站:Giglio
2018/01/05 全球购物
德国网上花店:Valentins
2018/08/15 全球购物
中专自我鉴定范文
2013/10/16 职场文书
求职信范文英文版
2014/01/05 职场文书
优秀士兵个人事迹材料
2014/01/19 职场文书
外贸专业求职信
2014/03/09 职场文书
个人工作主要事迹
2014/05/08 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
镇党政领导班子民主生活会思想汇报
2014/10/11 职场文书
校长一岗双责责任书
2015/05/09 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang