博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【爬虫】码了个毕业照爬虫
阅读量:5885 次
发布时间:2019-06-19

本文共 2175 字,大约阅读时间需要 7 分钟。

怪不得都说压力山大,连山大server压力都太大了。而且编辑直接把图片挂到一个页面上是什么意思= =,一张照片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,urllib2import reimport 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'
') 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)

转载地址:http://jklix.baihongyu.com/

你可能感兴趣的文章
CSS魔法堂:display:none与visibility:hidden的恩怨情仇
查看>>
git 放弃本地修改(转)
查看>>
.NET获取服务器信息,如服务器版本、IIS等
查看>>
你能熟练使用Dictionary字典和List列表吗?
查看>>
读取Json
查看>>
关于DLL文件和EXE文件不在同一目录下的设置
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 密码强化、网络安全强化...
查看>>
web 开发之js---ajax 中的两种返回状态 xmlhttp.status和 xmlhttp.readyState
查看>>
TeX
查看>>
【Machine Learning in Action --2】K-最近邻分类
查看>>
cocos2dx3.1.1+cocosstudio+lua问题总结
查看>>
漫游Kafka设计篇之性能优化(7)
查看>>
MVC在添加控制器的时候发现没有添加的选项了?肿么办?
查看>>
Android AndroidManifest.xml配置文件
查看>>
[原创]自定义BaseAcitivity的实现,统一activity的UI风格样式
查看>>
C# LDAP认证登录
查看>>
spark源码 hashpartitioner
查看>>
Vue文件跳转$router传参数
查看>>
gitlab简单使用教程【转】
查看>>
《荣枯鉴》闻达卷二
查看>>