【爬虫】码了个毕业照爬虫

怪不得都说压力山大,连山大服务器压力都太大了。并且编辑直接把图片挂到一个页面上是什么意思= =,一张照片8M+,反正外网速度台有限了。索性写个爬虫让他慢慢下吧,顺便当学习练手了。。。(PS:不知道为什么在windows下面在页面中用迅雷下载全部链接也无效,不知道什么原因?)

一共192组图片,前20组由于网页上顺序有问题,后期爬虫写完后又懒得改正则匹配了,所以就这样吧_(:з」∠)_

代码如下,一句句叠上来的,再简单不过了:

有python环境的可以自己直接保存后跑一下,不感兴趣的直接百度网盘下载吧

http://pan.baidu.com/s/1hSvH8

(感觉用sublimeText安装python支持后直接F5没有在linux下直接python 文件名速度快,不知道是不是因为测试时间不同情况下网速差异造成的)

#!/usr/bin/env python
#! -*- coding: utf-8 -*-
import urllib,urllib2
import re
import time
#返回网页源代码
def getHtml(url):
	# print 'Start Downloading Html Source Code'
	user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
	headers = {'User-Agent' : user_agent }
	req = urllib2.Request(url,headers = headers)
	html = urllib2.urlopen(req)
	srcCode = html.read()
	#print srcCode
	return srcCode

#srcCode 包含图片的网页
def getImg(srcCode,startNum,endNum):
	#对网页中图片建立正则,并存为list
	pattern = re.compile(r'<a.*?href="(.*?)" title="第.*?组.JPG">')
	imgSrcHtml = pattern.findall(srcCode)
	print imgSrcHtml
	#print len(imgSrcHtml)
	num = startNum
	# count = endPage - startPage
	# for x in xrange(1,count):

	for i in imgSrcHtml[startNum-1:endNum-1]:
		# 补全链接,得到完整地址
		i = 'http://www.online.sdu.edu.cn' + i
		#print i
		# return imageRealSrc
		# for src in imageRealSrc:
		# 	urllib.urlretrieve(src,'%s.jpg' % num)

		user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
		headers = {'User-Agent' : user_agent }
		req = urllib2.Request(i,headers = headers)

		print "Downloading..."
		print i
		print "and saving as 第%s组.jpg\n" %(num+8)

		##html = urllib2.urlopen(req,timeout = 5)
		html = urllib2.urlopen(req)
		f = open("./pics/" + u'第%s组.jpg' % (num+8), 'w+b')
		f.write(html.read())
		f.close()
		num += 1

			# try:
			# 	html = urllib2.urlopen(req,timeout = 5)
			# except Exception, e:
			# 	print '抛出异常为:' + str(e)
			# 	break
			# try:
			# 	f = open("./" + '%s.jpg' % num, 'w+b')
			# 	f.write(html.read())
			# 	f.close()
			# 	num += 1
			# except Exception, e:
			# 	print '抛出异常为:' + str(e)
			# 	# num +=1
			# 	break
	        # time.sleep(5)
	print '全部任务完成!'

ImgUrl = "http://www.online.sdu.edu.cn/news/article-17317.html"
print "共有184张照片,请依次输入开始数和结束数"
start = int(raw_input("Start number\n"))
end = int(raw_input("End number\n"))
print "Starting..."
getImg(getHtml(ImgUrl),start,end)

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-12 06:24:32

【爬虫】码了个毕业照爬虫的相关文章

第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略

第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲-爬虫和反爬的对抗过程以及策略-scrapy架构源码分析图 1.基本概念 2.反爬虫的目的 3.爬虫和反爬的对抗过程以及策略 scrapy架构源码分析图

开源爬虫汇总表,83款 网络爬虫开源软件

世界上已经成型的爬虫软件多达上百种,本文对较为知名及常见的开源爬虫软件进行梳理,按开发语言进行汇总,如下表所示.虽然搜索引擎也有爬虫,但本次我汇总的只是爬虫软件,而非大型.复杂的搜索引擎,因为很多兄弟只是想爬取数据,而非运营一个搜索引擎. 开源爬虫汇总表 开发语言 软件名称 软件介绍 许可证 Java Arachnid 微型爬虫框架,含有一个小型HTML解析器 GPL crawlzilla 安装简易,拥有中文分词功能 Apache2 Ex-Crawler 由守护进程执行,使用数据库存储网页信息

Python网络爬虫学习手记(1)——爬虫基础

1.爬虫基本概念 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.--------百度百科 简单的说,爬虫就是获取目标网页源代码,并提取和保存网页信息的自动化程序或者脚本.网络爬虫脚本或者程序一般包含如下几个步骤: A.获取网页源代码 爬虫首要的任务就是获取需要爬取的目标网页,也就是网页源代码,一般网页源代码就是一系列HTML代码 B.提取信息 得到了网页源代码后,接下来就是分析该HTML代码,按照一

爬虫技术(四)-- 简单爬虫抓取示例(附c#代码)

这是我的第一个爬虫代码...算是一份测试版的代码.大牛大神别喷... 通过给定一个初始的地址startPiont然后对网页进行捕捉,然后通过正则表达式对网址进行匹配. List<string> todo :进行抓取的网址的集合 List<string> visited :已经访问过的网址的集合 下面实现的是,给定一个初始地址,然后进行爬虫,输出正在访问的网址和已经访问的网页的个数. 需要注意的是,下面代码实现的链接匹配页面的内容如图一.图二所示: 图一: 图二: 简单代码示范如下:

[转载]网络爬虫(12):爬虫框架Scrapy的第一个爬虫示例入门教程

我们使用dmoz.org这个网站来作为小抓抓一展身手的对象. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目 明确目标(Items):明确你想要抓取的目标 制作爬虫(Spider):制作爬虫开始爬取网页 存储内容(Pipeline):设计管道存储爬取内容 好的,基本流程既然确定了,那接下来就一步一步的完成就可以了. 1.新建项目(Project) 在空目录下按住Shift键右击,选择“在此处打开命令窗口”,输入一

第三百四十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫数据保存

第三百四十二节,Python分布式爬虫打造搜索引擎Scrapy精讲-爬虫数据保存 注意:数据保存的操作都是在pipelines.py文件里操作的 将数据保存为json文件 spider是一个信号检测 # -*- coding: utf-8 -*- # Define your item pipelines here # # Don't forget to add your pipeline to the ITEM_PIPELINES setting # See: http://doc.scrapy

零基础写python爬虫之使用Scrapy框架编写爬虫

网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻量级的,简单轻巧,并且使用起来非常的方便.使用Scrapy可以很方便的完成网上数据的采集工作,它为我们完成了大量的工作,而不需要自己费大力气去开发. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目 明确目标(Item

JAVA爬虫实践(实践三:爬虫框架webMagic和csdnBlog爬虫)

WebMagic WebMagic是一个简单灵活的Java爬虫框架.基于WebMagic,你可以快速开发出一个高效.易维护的爬虫. 采用HttpClient可以实现定向的爬虫,也可以自己编写算法逻辑来实现多线程,创建链接池,自动解析网页代码获取请求链接,封装正则表达式等等. 但是如果使用框架,就不再需要考虑爬虫的逻辑,只需要专注HTML内容的解析和获取. 引用WebMagic后写一个爬虫只需要编写一个类实现PageProcessor接口,实现两个方法. 一个WebMagic例子 package

03,Python网络爬虫第一弹《Python网络爬虫相关基础概念》

引入 为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的应用还是从就业上. 我们都知道,当前我们所处的时代是大数据的时代,在大数据时代,要进行数据分析,首先要有数据源,而学习爬虫,可以让我们获取更多的数据源,并且这些数据源可以按我们的目的进行采集. 优酷推出的火星情报局就是基于网络爬虫和数据分析制作完成的.其中每期的节目话题都是从相关热门的互动平台中进行相关数据的爬取,然后对爬取到的数据进行数据分析而得来的.另一