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实现在无须过多援引的情况下创建字典的方法
Sep 25 Python
python类的方法属性与方法属性的动态绑定代码详解
Dec 27 Python
Python的numpy库中将矩阵转换为列表等函数的方法
Apr 04 Python
python实现扫描ip地址的小程序
Apr 16 Python
python之信息加密题目详解
Jun 26 Python
python urllib爬虫模块使用解析
Sep 05 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
Jan 20 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
Feb 26 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 Python
python转化excel数字日期为标准日期操作
Jul 14 Python
python使用selenium爬虫知乎的方法示例
Oct 28 Python
python使用openpyxl库读写Excel表格的方法(增删改查操作)
May 02 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解析字符串里所有URL地址的方法
2015/04/03 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
PHP连接MYSQL数据库实例代码
2016/01/20 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
2019/06/08 PHP
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
javascript返回顶部效果(自写代码)
2013/01/06 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
javascript实现可全选、反选及删除表格的方法
2015/05/15 Javascript
javascript实现的猜数小游戏完整实例代码
2016/05/10 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
python数据结构之二叉树的遍历实例
2014/04/29 Python
基于Python Shell获取hostname和fqdn释疑
2016/01/25 Python
基于Python os模块常用命令介绍
2017/11/03 Python
一道python走迷宫算法题
2018/01/22 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
一套比较完整的软件测试人员面试题
2012/05/13 面试题
担保书格式及范文
2014/04/01 职场文书
淘宝店策划方案
2014/06/07 职场文书
消防工作实施方案
2014/06/09 职场文书
医学生求职信
2014/07/01 职场文书
银行求职信模板
2015/03/20 职场文书
建党伟业观后感
2015/06/01 职场文书
2016年3月份红领巾广播稿
2015/12/21 职场文书
《火烧云》教学反思
2016/02/23 职场文书