Python技术栈

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 7734|回复: 97

[爬取案例] Python抓取网页图本脚本源码下载

  [复制链接]

17

主题

20

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2018-12-12 09:47:54 | 显示全部楼层 |阅读模式
用Python脚本从网络中抓取图片保存到本地,这样的Python抓取网页图本脚本源码网上有不少,感觉斯巴达Python_搜索引擎爬虫抓取还是不错的,喜欢的朋友可以去玩蛇网找python 多线程爬虫全集来学习下。
我自己也试了写了一个抓图片的python小程序,练练手吧。
斯巴达Python_搜索引擎爬虫抓取视频教程(1),还有好多集是一系列的都不错,推荐!
这段代码我用到了os\sys\re\urllib这些python 模块方法,具体的操作方法在玩蛇网也能找到,我不多说了,下面把我的代码贴上来,欢迎大家拍砖。
[Python] 纯文本查看 复制代码
#coding=utf-8   
   
import os   
import sys   
import re   
import urllib   
   
URL_REG = re.compile(r'(http://[^/\\]+)', re.I)   
IMG_REG = re.compile(r'<img[^>]*?src=([\'"])([^\1]*?)\1', re.I)   
   
def download(dir, url):   
    '''''下载网页中的图片  
       
    dir 保存到本地的路径  
    url 网页url 
[url]www.iplaypy.com[/url] 
    ''' 
    global URL_REG, IMG_REG   
        
    m = URL_REG.match(url)   
    if not m:    
        print '[Error]Invalid URL: ', url   
        return 
    host = m.group(1)   
        
    if not os.path.isdir(dir):   
        os.mkdir(dir)   
        
    # 获取html,提取图片url   
    html = urllib.urlopen(url).read()   
    imgs = [item[1].lower() for item in IMG_REG.findall(html)]   
    f = lambda path: path if path.startswith('http://') else \   
                host + path if path.startswith('/') else url + '/' + path   
    imgs = list(set(map(f, imgs)))   
    print '[Info]Find %d images.' % len(imgs)   
        
    # 下载图片   
    for idx, img in enumerate(imgs):   
        name = img.split('/')[-1]   
        path = os.path.join(dir, name)   
        try:    
            print '[Info]Download(%d): %s'% (idx + 1, img)   
            urllib.urlretrieve(img, path)   
        except:    
            print "[Error]Cant't download(%d): %s" % (idx + 1, img)   
        
def main():   
    if len(sys.argv) != 3:   
        print 'Invalid argument count.' 
        return 
    dir, url = sys.argv[1:]   
    download(dir, url)   
   
if __name__ == '__main__':   
    # download('D:\\Imgs', 'http://www.163.com')   
    main() 

Python 总 群
回复

使用道具 举报

0

主题

7

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2018-12-12 09:47:55 | 显示全部楼层
向楼主学习
Python 总 群
回复

使用道具 举报

0

主题

9

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2018-12-12 10:24:08 | 显示全部楼层
前排,哇咔咔
Python 总 群
回复

使用道具 举报

0

主题

6

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2018-12-12 11:47:15 | 显示全部楼层
鼎力支持!!
Python 总 群
回复

使用道具 举报

0

主题

6

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2018-12-12 13:48:32 | 显示全部楼层
这么强,支持楼主,佩服
Python 总 群
回复

使用道具 举报

0

主题

4

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2018-12-12 14:29:51 | 显示全部楼层
没人回帖。。。我来个吧
Python 总 群
回复

使用道具 举报

6

主题

10

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2018-12-12 18:27:43 | 显示全部楼层
我是个凑数的。。。
Python 总 群
回复

使用道具 举报

0

主题

8

帖子

26

积分

新手上路

Rank: 1

积分
26
发表于 2018-12-12 21:38:17 | 显示全部楼层
呵呵。。。
Python 总 群
回复

使用道具 举报

0

主题

3

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2018-12-13 03:28:17 | 显示全部楼层
顶起出售广告位
Python 总 群
回复

使用道具 举报

0

主题

5

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 2018-12-13 03:39:25 | 显示全部楼层
传说中的沙发???哇卡卡
Python 总 群
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


QQ|Archiver|手机版|小黑屋|Python.BBS ( 鲁ICP备18046958号 )

GMT+8, 2020-1-25 23:42 , Processed in 0.191206 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表