`
qepwqnp
  • 浏览: 108884 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

用Python写的图片蜘蛛人

阅读更多

写了个图片蜘蛛人玩玩,抓了几个网页试试,感觉不不错。核心的代码可能20行也不到,简洁明了,嘻嘻。废话少说,翠花,上代码~~

#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
	'''
	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爬虫百度图片

    在开始学习如何用Python爬取百度图片之前,我们先来了解一下网络爬虫的基本概念。网络爬虫(Web Crawler),也称为网页蜘蛛(Spider)或网页机器人(Robot),是一种自动浏览互联网并抓取网页数据的程序或自动化脚本...

    Python爬虫:让“蜘蛛”帮我们工作.docx

    在Python中,我们可以使用内置的`urllib.request`模块来实现这一功能。这个模块提供了请求网页数据的能力。以下是一个简单的例子: ```python import urllib.request url = 'http://p.weather.com.cn/' def ...

    Python网络爬虫技术 第1章 Python爬虫环境与爬虫简介 教案.pdf

    理论教学部分将涵盖爬虫概念、原理、反爬策略和Python爬虫库的介绍,而实验教学则强调实际操作,包括数据库的安装配置和爬虫库的使用。学生在实践中将更好地理解和掌握爬虫技术。 **六、教学目标与要求** - 理解...

    python-网络爬虫.docx

    4. **下载图片**:对于每个图片链接,再次使用`urllib.request`下载图片。 **总结** 本文详细介绍了网络爬虫的基本概念、工作原理以及如何使用Python进行网络爬虫开发。通过对URL的理解及其在网络爬虫中的作用进行...

    python爬虫可以做什么?python爬虫入门教程有哪些?.docx

    - **Urllib库的基本使用**:学习Python内置的Urllib库,进行简单的网络请求。 - **Urllib库的高级用法**:深入探讨Urllib库的各种高级功能。 - **URLError异常处理**:学习如何处理爬虫过程中可能出现的错误。 -...

    Python网络爬虫实习报告.doc

    5. **Python-goose框架**:该框架专注于从网页中提取有用的文章内容,包括正文、图片、视频等多媒体资源。它还支持提取元数据,如标题、作者、发布时间等。 #### 五、数据爬取实战——豆瓣网爬取电影数据 1. **...

    Python爬虫模拟器,让网络爬虫工作变得如些简单,会电脑操作就会网络爬虫!

    Python爬虫模拟器是一种强大的工具,它使得网络数据抓取变得更加直观和易用,即使是...总的来说,Python爬虫模拟器是Python爬虫技术与易用性结合的产物,使得网络爬虫不再只是程序员的专利,而是任何人都能掌握的技能。

    简易蜘蛛代码

    在IT行业中,蜘蛛(Spider)通常指的是网络爬虫(Web Crawler),这是一种自动化程序,用于遍历互联网上的网页,收集信息。"简易蜘蛛代码"是一个基础的爬虫项目,可以帮助初学者理解网络爬虫的基本原理和实现方法。...

    wangzhe.rar

    项目的核心是使用爬虫技术来抓取游戏中英雄的图片,这涉及到Python编程语言以及网络爬虫的相关知识。下面我们将深入探讨这些主题。 首先,让我们了解什么是网络爬虫。网络爬虫,又称网页蜘蛛或网络机器人,是一种...

    蜘蛛网络爬虫

    网络爬虫,又称为网络蜘蛛或网页抓取程序,是一种自动浏览互联网并抓取网页内容的程序。它的工作原理是通过模拟人类用户的行为,遵循超链接结构,从一个网页出发,发现并抓取与其链接的其他网页,以此方式不断扩大其...

    python爬虫的工作原理

    网络爬虫通常被形象地比喻为在互联网上爬行的蜘蛛,它们通过网页之间的链接地址来发现新的网页。在Python中,实现爬虫的主要步骤包括以下几个方面: 1. **启动爬虫**: 爬虫的起始点通常是某个已知的网页URL,这被...

    image_spider:基于scrapy的图像蜘蛛

    "image_spider:基于scrapy的图像蜘蛛" 这个标题表明我们正在讨论一个使用Scrapy框架构建的Python爬虫项目,它的主要功能是抓取并下载特定网页上的图像,特别是铃木爱理(Airi Suzuki)的相关图片。 **描述解析:** ...

    小游戏源码-蜘蛛侠.rar

    2. **编程语言**:源码可能是用JavaScript、C#、Python或其他语言编写的。确定编程语言可以帮助我们理解代码的基础框架和流程。 3. **游戏架构**:源码可能遵循MVC(模型-视图-控制器)、OOP(面向对象编程)或其他...

    自己动手写网络爬虫.ptf(高清)

    3. **Python爬虫框架**:Python是编写爬虫的常用语言,有多种爬虫框架可供选择,如Scrapy、BeautifulSoup、Requests+PyQuery等。Scrapy是一个功能强大的框架,支持异步请求、中间件处理、数据持久化等功能;...

    613张高清壁纸,爬虫编写过程中爬取数据.zip

    总的来说,这个压缩包展示了如何使用Python爬虫技术从互联网上抓取并聚合多源的高清壁纸数据。这种技术在大数据分析、市场研究、个性化推荐系统等领域都有应用。同时,它也提醒我们在进行网络爬虫活动时要注意遵守...

    Gif_Spider:GIF图片的蜘蛛

    今天就来分享一下,怎么通过爬虫自动的将这些个动作收藏到自己的电脑中(其实这个程序5月份就写好了,一直拖到现在才想起来将它分享出来)。 一.思路分析 按照爬虫的基本规律: 1.找到目标 2.抓取目标 3.处理目标...

    反反蜘蛛:越来越多的网站具有反爬虫特性,有的用图片隐藏关键数据,有的使用反人类的验证码,建立反反爬虫的代码仓库,通过与不同特性的网站做斗争(无恶意)提高技术。(欢迎提交意图采集的网站)(因工作原因,项目暂停)

    基于CNN的验证码图片识别简介本项目采用alexnet模型和letnet模型,可根据实际需要选择(在train_model.py中的train函数修改即可)95.5%作者有话说不知不觉这个git库伴随我从16到到20年,带给我自己最棒的一段人生旅程...

    看图猜成语程序使用说明-爬虫

    5. **多线程/异步编程**:为了提高爬取效率,可以使用多线程或多进程,或者基于异步IO的库(如Python的asyncio)进行并发处理。这样可以同时处理多个请求,显著加快爬虫的速度。 6. **反爬机制与IP代理**:许多网站...

Global site tag (gtag.js) - Google Analytics