爬虫-爬取图片

首先爬取的网址是:https://www.mzitu.com/zipai/
打开网站
发现一页会有好几张图片:

image.png

这里不光要爬取这一页上的图片
image2.png

举例现在要爬取455和454和453这3页的图片
首先写出基本框架
image3.png

import urllib.request
import os

def download_mm(folder='ooxx',pages=3):#爬取的是3页内容,所以pages=3,保存文件名为ooxx
    os.mkdir(folder)
    os.chdir(folder)

    url='http://www.mzitu.com/zipai/'
    page_num=int(get_page(url))

    for i in range(pages):
        page_num-=i
        page_url=url+'comment-page-'+str(page_num)+'/#comments'   #这里的page_url就是浏览器上面的地址,如上图所示,改变了页码只有page_num会改变
        img_addrs=find_imgs(page_url)
        save_imgs(folder,img_addrs)

if __name__=='__main__':
    download_mm()

定义url_open函数

def url_open(url):
    req=urllib.request.Request(url)
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5221.400 QQBrowser/10.0.1125.400')#header信息要在网页右击->检查->Network->Request Headers中找
    
    response=urllib.request.urlopen(req)#小甲鱼56课讲的是用(url),但据说会因为反爬出现报错,改为(req)能够解决
    html=response.read()
    print(url)
    return html

定义get_page函数


image4.png
def get_page(url):
    html=url_open(url).decode('utf-8')

    a=html.find('page-numbers current')+22 #在网页上页码处右击检查,定位页码信息的位置,观察格式来写a和b,如上图所示
    b=html.find('<',a)
    
    return html[a:b]

定义find_imgs函数


image5.png

···
def find_imgs(url):
html=url_open(url).decode('utf-8')
img_addrs=[]

a=html.find('data-original=') #在网页上要爬的图片处右击检查,定位图片的位置,观察格式来写a和b,如上图所示,注意是后面的地址,不是前面的
while a!=-1:
    b=html.find('.jpg',a,a+255)

    if b!=-1:
        img_addrs.append(html[a+15:b+4])
    else:
        b=a+15
    a=html.find('data-original=',b)
for each in img_addrs:
    print(each)

return img_addrs

···
定义save_imgs函数

def save_imgs(folder,img_addrs):
    for each in img_addrs:
        filename=each.split('/')[-1]
        with open(filename,'wb') as f:
            img=url_open(each)
            f.write(img)

全代码如下:

import urllib.request
import os

def url_open(url):
    req=urllib.request.Request(url)
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5221.400 QQBrowser/10.0.1125.400')
    
    response=urllib.request.urlopen(req)
    html=response.read()
    print(url)
    return html

def get_page(url):
    html=url_open(url).decode('utf-8')

    a=html.find('page-numbers current')+22
    b=html.find('<',a)
    
    return html[a:b]

def find_imgs(url):
    html=url_open(url).decode('utf-8')
    img_addrs=[]

    a=html.find('data-original=')
    while a!=-1:
        b=html.find('.jpg',a,a+255)

        if b!=-1:
            img_addrs.append(html[a+15:b+4])
        else:
            b=a+15
        a=html.find('data-original=',b)
    for each in img_addrs:
        print(each)

    return img_addrs

def save_imgs(folder,img_addrs):
    for each in img_addrs:
        filename=each.split('/')[-1]
        with open(filename,'wb') as f:
            img=url_open(each)
            f.write(img)
    
def download_mm(folder='ooxx',pages=3):#爬取的是3页内容,所以pages=3,保存文件名为ooxx
    os.mkdir(folder)
    os.chdir(folder)

    url='http://www.mzitu.com/zipai/'
    page_num=int(get_page(url))

    for i in range(pages):
        page_num-=i
        page_url=url+'comment-page-'+str(page_num)+'/#comments'#这里的page_url就是浏览器上面的地址,如上图所示,改变了页码只有page_num会改变
        img_addrs=find_imgs(page_url)
        save_imgs(folder,img_addrs)

if __name__=='__main__':
    download_mm()

结果如下(当然还有个生成的文件夹):
http://www.mzitu.com/zipai/
http://www.mzitu.com/zipai/comment-page-455/#comments
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5poldp9j20j60pkk1o.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5pom3uvj20j60pkdiy.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5pon9ygj20j60pi47j.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5pp3e5xj20j60pi112.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5ppjdbdj20j60pk0y2.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5poqe7pj20j60pj7es.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5poqexsj20qr0zkdim.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5pp9k9yj20j60pktfg.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5poldp9j20j60pkk1o.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5pom3uvj20j60pkdiy.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5pon9ygj20j60pi47j.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5pp3e5xj20j60pi112.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5ppjdbdj20j60pk0y2.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5poqe7pj20j60pj7es.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5poqexsj20qr0zkdim.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5pp9k9yj20j60pktfg.jpg
http://www.mzitu.com/zipai/comment-page-454/#comments
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5pp9ixrj20sg11x1kx.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5loi7ijomj20sg0zkn18.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5lohxcodyj20sg0lbn0e.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5lohy6z09j20sg0sggow.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5lohv3lawj20sg0seacw.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5lohvclinj20sg0sgadx.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5lohvcf4qj20sg0sgjvg.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5loia7rrmj20sg0zkq77.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5lohvis0zj20sg0zkdjz.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5lohvkfxhj20sg0mnac9.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5i7p3h8ihj20u0140npe.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5i7p13e10j20k00qowjz.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5i7p26wnhj20sg11xker.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5i7p210rcj20sg0venp0.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5i7p2oeiij20k30p4b29.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5i7p12zuuj20j60ny13k.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g5p5pp9ixrj20sg11x1kx.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5loi7ijomj20sg0zkn18.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5lohxcodyj20sg0lbn0e.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5lohy6z09j20sg0sggow.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5lohv3lawj20sg0seacw.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5lohvclinj20sg0sgadx.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5lohvcf4qj20sg0sgjvg.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5loia7rrmj20sg0zkq77.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5lohvis0zj20sg0zkdjz.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5lohvkfxhj20sg0mnac9.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5i7p3h8ihj20u0140npe.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5i7p13e10j20k00qowjz.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5i7p26wnhj20sg11xker.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5i7p210rcj20sg0venp0.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5i7p2oeiij20k30p4b29.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5i7p12zuuj20j60ny13k.jpg
http://www.mzitu.com/zipai/comment-page-452/#comments
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5a4skej8rj20j60piag9.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5a4sl5510j20qo0zkdpz.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5a4sju2r5j20u011hgp7.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5a4slojnvj20qo0zh7aw.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5a4sk393dj20ia0odn37.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i91zg8qj20j60y30z1.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i9214z3j20qo0zkk27.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i91yorqj20hs0qo403.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i922of2j20kw0rsafv.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i920qyfj20hs0npq3q.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i97qr5lj20u0140b2a.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i924zlmj20lc0sg7g1.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i927emhj20lf0qo75r.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i93fk2aj20u011h78y.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g50w32crrhj20qo0zk4qp.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g50w2shpd0j20hs0koabc.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5a4skej8rj20j60piag9.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5a4sl5510j20qo0zkdpz.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5a4sju2r5j20u011hgp7.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5a4slojnvj20qo0zh7aw.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073gy1g5a4sk393dj20ia0odn37.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i91zg8qj20j60y30z1.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i9214z3j20qo0zkk27.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i91yorqj20hs0qo403.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i922of2j20kw0rsafv.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i920qyfj20hs0npq3q.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i97qr5lj20u0140b2a.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i924zlmj20lc0sg7g1.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i927emhj20lf0qo75r.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g55i93fk2aj20u011h78y.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g50w32crrhj20qo0zk4qp.jpg
https://wxt.sinaimg.cn/mw1024/9d52c073ly1g50w2shpd0j20hs0koabc.jpg

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,820评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,648评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,324评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,714评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,724评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,328评论 1 310
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,897评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,804评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,345评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,431评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,561评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,238评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,928评论 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,417评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,528评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,983评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,573评论 2 359