Python实现抓取http://www.cssmoban.com/cssthemes网站的模版并下载

实现代码

# -*- coding: utf-8 -*-
import urlparse
import urllib2
import re
import os
import os.pathURL='http://www.cssmoban.com/cssthemes'#全局超时设置
urllib2.socket.setdefaulttimeout(500)#根据url获取内容
def getUrlContent(url):response = urllib2.urlopen(url)html = response.read();return html#获取html中的a标签,且格式是<a target="_blank" href="/showcase/*">的
def getAllUrl(html):return re.findall('<a[\\s]+href="/cssthemes/\d+\.shtml">.*?\/a>',html)#获取下载文件的标题
def getDownTitle(html):return re.findall('\<h1>(.*?)\</h1>',html)#获取文件下载的url
def getDownUrl(html):return re.findall('<a.*?class="button btn-down".*?\/a>',html)#获取下一页的url
def getNextUrl(html):return re.findall('<a.*?下一页</a>',html)#下载文件
def download(title,url):result = urllib2.urlopen(url).read()if os.path.exists("template/")==False:os.makedirs("template/")newname=("template/"+title.decode('utf-8'))newname=newname+'.'+url[url.rfind('.')+1:len(url)]open(newname, "wb").write(result)#记录日志
def i(msg):fileobj=open('info.log','a')fileobj.write(msg+'\n')fileobj.close();print msg
#记录错误日志
def e(msg):fileobj=open('error.log','a')fileobj.write(msg+'\n')fileobj.close();print msg
if __name__ == '__main__':#print getDownUrl('<a href="http://down.cssmoban.com/cssthemes1/cctp_17_jeans.zip" target="_blank" class="button btn-down" title="免费下载"><i class="icon-down icon-white"></i><i class="icon-white icon-down-transiton"></i>免费下载</a>')html= getUrlContent(URL)i('开始下载:%s' %(URL))while True:lista= getAllUrl(html);#print lista;nextPage=getNextUrl(html)#print nextPage[0]nextUrl=''#i('下一页%s'%(nextPage))if len(nextPage)<=0:e('地址:%s,未找到下一页,程序退出' %(nextPage))break;nextUrl=nextPage[0]nextUrl=URL+'/'+nextUrl[nextUrl.index('href="')+6:nextUrl.index('" target')]#print nextPagefor a in lista:downGotoUrl=''try:#print a.decode('utf-8')downGotoUrl=(URL+''+a[a.index('href="')+6:a.index('">')])downGotoUrl=downGotoUrl.replace(URL,'http://www.cssmoban.com')#print downGotoUrldownHtml=getUrlContent(downGotoUrl)#print downHtmldownTitleList= getDownTitle(downHtml)downTitle=''if len(downTitleList)>0:downTitle=downTitleList[0]#print downTitledownUrlList= getDownUrl(downHtml)downUrl=''if len(downUrlList)>0:downUrl=downUrlList[0]downUrl= downUrl[downUrl.index('href="')+6:downUrl.index('" target')]#print downUrli('开始下载:%s,文件名:%s' %(downUrl,downTitle))download(downTitle,downUrl)i('%s下载完成,保存文件名:%s' %(downUrl,downTitle))except Exception,e:e('地址:%s下载失败,失败信息:' %(downGotoUrl))e(str(e))i('-----------------------------------------')i('执行下一页:%s' %(nextUrl))html= getUrlContent(nextUrl)

无比强大!Python抓取cssmoban网站的模版并下载相关推荐

  1. python抓取dblp网站的arXiv论文,下载保存成pdf

    python抓取dblp网站的arXiv论文,下载保存成pdf 需求 需要查找一些关于强化学习决策方面的论文,懒得一个一个下载,所以用python写了个脚本,在dblp网站上爬取论文. import ...

  2. python正则匹配找到所有的浮点数_如何利用Python抓取静态网站及其内部资源

    遇到的需求 前段时间需要快速做个静态展示页面,要求是响应式和较美观.由于时间较短,自己动手写的话也有点麻烦,所以就打算上网找现成的. 中途找到了几个页面发现不错,然后就开始思考怎么把页面给下载下来. ...

  3. 简单的Python抓取招聘网站信息(1)

    作为一名大四狗刚刚经历完找工作的浪潮,发现每天需要去各类招聘网站进行看招聘信息非常麻烦,想到用Python爬虫抓取招聘网站的招聘信息.同届的同学大多找完了工作,文章就给将来需要的同学看吧~因为不着急, ...

  4. Python抓取淘女郎网页信息以及代码下载

    上一篇Python抓取糗事百科网页信息以及源码下载 也是利用python抓取网页信息,轻车熟路,知道一个之后,轻轻松松就是实现啦. 淘女郎网页地址:https://mm.taobao.com/json ...

  5. python抓取酷我MV

    使用python抓取酷我网站MV的名称,图片,视频链接 requests请求网站 lxml.etree抓取数据 urllib.request保存图片 运行如下: 将抓取到的图片保存在文件夹内,使用ur ...

  6. python抓取网站乱码_如何使用Python抓取网站

    python抓取网站乱码 by Devanshu Jain 由Devanshu Jain It is that time of the year when the air is filled with ...

  7. python抓取网站图片_利用python抓取网站图片

    看了网上关于python抓取网站图片的例子,所以自己也尝试着写一个,但是发现这个网站的src不是标准的路径,需要自己添加前面的目录地址,尝试了几次也不成功,所以希望有经验的朋友指导下. 本人是初学者, ...

  8. python数据分析实例:python抓取课工厂网站数据和分析

    在线教育网站学习,是很多人利于闲余时间进行充电的一种选择.本篇文章利用python抓取在线教育网站课工场课程页面的数据,进行简要分析. 通过使用requests库对课工场课程列表页进行抓取. 通过Be ...

  9. python抓取网站图片_python抓取图片示例 python抓取网页上图片

    python抓取网页上图片 这个错误时是什么意思 下面是代码 import re import urllib.request imp正则表达式匹配的url有错误 for x in add: print ...

最新文章

  1. Docker 入门系列(4)- Docker 数据管理(挂载目录、挂载文件、数据卷挂载、数据卷共享、数据卷删除、数据卷容器备份和恢复)
  2. 技术直播:讲一个Python编写监控程序的小故事
  3. Android图像开源视图:SmartImageView
  4. Spring中bean标签的属性和值:
  5. 合成大西瓜html源码,index.html
  6. docker新建Linux虚拟机,RHEL/CentOS 7下创建你的第一个Docker容器
  7. 日志框架 android,深度剖析Android JDK 日志框架
  8. 机器学习入门02-朴素贝叶斯原理和java实现
  9. C语言中的位域的使用
  10. Sublime Text 2删除行尾空格
  11. Python父与子的编程之旅 第八章答案
  12. ofd文件转化成pdf的免费方法
  13. apple script to 1s screen capture snapshot w/ windowsill
  14. 汉印CP4000照片打印机体验
  15. 百度网页快照删除服务恢复运营
  16. 本文为转载-------Web常使用的功能经验笔记第1季 -转载自刘岩
  17. 所谓成长,就是认知升级
  18. Bmob域名绑定教程
  19. win10 android 传多个文件夹,Win10使用ROBOCOPY快速复制多个文件夹的操作方法
  20. CS224W-6-message passing and node classification 第3部分

热门文章

  1. springboot整合elasticsearch8
  2. 穹顶之下,企业建站怎么做?网站建设怎么做?建网站有几大步骤?
  3. FHE学习笔记 #1 部分抽象代数名词
  4. MySQL讲义第 35 讲——select 查询之正则表达式
  5. 安装EVA后可能出现无法在EVA输入中文的解决方法
  6. GMTUTC,UNIX时间戳,时区
  7. csdn--接口自动化测试之postman如何设置断言
  8. 发现vjudge用搜狗浏览器无法登陆
  9. 真正借奥运雄起只有无线互联网
  10. R语言︱SNA-社会关系网络—igraph包(中心度、中心势)(二)