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

yipeiwu_com6年前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语句设置下载的页数。

相关文章

详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果

详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果

上一篇内容,已经学会了使用简单的语句对网页进行抓取。接下来,详细看下urlopen的两个重要参数url和data,学习如何发送数据data 一、urlopen的url参数 Agent...

python 爬取古诗文存入mysql数据库的方法

使用正则提取数据,请求库requests,看代码,在存入数据库时,报错ERROR 1054 (42S22): Unknown column ‘title' in ‘field list'...

深入理解Python爬虫代理池服务

深入理解Python爬虫代理池服务

在公司做分布式深网爬虫,搭建了一套稳定的代理池服务,为上千个爬虫提供有效的代理,保证各个爬虫拿到的都是对应网站有效的代理IP,从而保证爬虫快速稳定的运行,当然在公司做的东西不能开源出来。...

Python实现爬虫抓取与读写、追加到excel文件操作示例

本文实例讲述了Python实现爬虫抓取与读写、追加到excel文件操作。分享给大家供大家参考,具体如下: 爬取糗事百科热门 安装 读写excel 依赖 pip install xlwt...

python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比

python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比

前言 还有一年多就要毕业了,不准备考研的我要着手准备找实习及工作了,所以一直没有更新。 因为Python是自学不久,发现很久不用的话以前学过的很多方法就忘了,今天打算使用简单的Beaut...