python爬虫入门教程之糗百图片爬虫代码分享

 更新时间:2014年09月02日 10:56:41   投稿:junjie  
这篇文章主要介绍了python爬虫入门教程之糗百图片爬虫代码分享,本文以抓取糗事百科内涵图为需求写了一个爬虫,,需要的朋友可以参考下

学习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如何识别 MySQL 中的冗余索引

    Python如何识别 MySQL 中的冗余索引

    冗余索引也是一个非常重要的巡检目,表中索引过多,会导致表空间占用较大,索引的数量与表的写入速度与索引数成线性关系(微秒级),如果发现有冗余索引,建议立即审核删除,这篇文章主要介绍了Python 识别 MySQL 中的冗余索引,需要的朋友可以参考下
    2022-10-10
  • 告别网页搜索!教你用python实现一款属于自己的翻译词典软件

    告别网页搜索!教你用python实现一款属于自己的翻译词典软件

    教你用python做一款属于自己的翻译词典软件,从此告别网页搜索,文中有非常详细的代码示例,小伙伴们快快行动吧,需要的朋友可以参考下
    2021-06-06
  • mac使用python识别图形验证码功能

    mac使用python识别图形验证码功能

    这篇文章主要介绍了mac使用python识别图形验证码功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • Jmeter如何使用BeanShell取样器调用Python脚本

    Jmeter如何使用BeanShell取样器调用Python脚本

    这篇文章主要介绍了Jmeter使用BeanShell取样器调用Python脚本,文章围绕Jmeter调用Python脚本的相关详情展开标题内容,需要的小伙伴可以参考一下
    2022-03-03
  • Python实现字符串中某个字母的替代功能

    Python实现字符串中某个字母的替代功能

    小编想实现这样一个功能:将输入字符串中的字母 “i” 变成字母 “p”。想着很简单,怎么实现呢?下面小编给大家带来了Python实现字符串中某个字母的替代功能,感兴趣的朋友一起看看吧
    2019-10-10
  • Python学习笔记之函数的参数和返回值的使用

    Python学习笔记之函数的参数和返回值的使用

    这篇文章主要介绍了Python学习笔记之函数的参数和返回值的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • python日志logging模块使用方法分析

    python日志logging模块使用方法分析

    这篇文章主要介绍了python日志logging模块使用方法,结合实例形式较为详细的分析了Python日志logging模块相关API函数与应用技巧,需要的朋友可以参考下
    2019-05-05
  • Selenium浏览器自动化如何上传文件

    Selenium浏览器自动化如何上传文件

    本文主要介绍了Selenium浏览器自动化如何上传文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 对DataFrame数据中的重复行,利用groupby累加合并的方法详解

    对DataFrame数据中的重复行,利用groupby累加合并的方法详解

    今天小编就为大家分享一篇对DataFrame数据中的重复行,利用groupby累加合并的方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python绘制箭头向量图的示例代码

    Python绘制箭头向量图的示例代码

    箭头向量图十分常见,比如天气预报在显示风场的时候,就会贴心地用箭头指明风的方向,下面就跟随小编一起学习一下如何利用Python绘制箭头向量图吧
    2023-08-08

最新评论