Python下载懒人图库JavaScript特效


Posted in Python onMay 28, 2015

这是一个简单的Python脚本,主要从懒人图库下载JavaScript特效模板,在脚本中使用了gevent这个第三方库,使用的时候需要先安装。

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import urllib,os,sys
import gevent,re
from gevent import monkey
from bs4 import BeautifulSoup
gevent.monkey.patch_socket()
 
'''
Description:Python 爬虫抓取懒人图库的JS脚本模板
Author:admin
Create-Date:2015-05-25
Version:1.0
'''
 
HTTP_URL = 'http://www.lanrentuku.com%s'
DOWNLOAD_URL = HTTP_URL[:-2] + '/js/d%szip'
reg=r'\d{1,}\.+'
 
def encode(text):
  return text.encode("utf8")
 
def createDirectory(curPath):
  myPath = os.path.join(getSubDirectory(), u'JS代码模板')
  if not os.path.exists(myPath):
    os.mkdir(myPath)
  return os.path.join(myPath, curPath)
 
def getSubDirectory():
  return os.getcwd()
 
def schedule(a, b, c): 
  per = 100.0 * a * b / c
  if per > 100 :
    per = 100
  sys.stdout.write('%.1f%%\r' % per)
  sys.stdout.flush()
 
def geturllist(url):
  url_list = {}
  html = urllib.urlopen(url)
  content = html.read()
  html.close()
  # 用BeautifulSoup解析
  decodeHtml = BeautifulSoup(content)
  try:
    aTags = decodeHtml.find_all('div', {'class':'list-pngjs'})[0].find_all('a')
  except IndexError, e:
    print e
    aTags = None
  # 获取链接地址和标题
  if aTags is not None:
    for a_tag in aTags:
      url_list[HTTP_URL % a_tag.get('href')] = a_tag.get_text()
  return url_list
  
def download(down_url):
  try:
    m=re.search(reg,down_url[0])
    name = DOWNLOAD_URL % m.group(0)
    urllib.urlretrieve(name,createDirectory(down_url[1] + name[-4:]),schedule)
  except Exception, e:
    print e.message
  
def getpageurl(xUrl):
  # 进行列表页循环
  return [xUrl % page for page in xrange(1,49)]
 
if __name__ == '__main__':
  jobs = []
  pageurl = getpageurl('http://www.lanrentuku.com/js/p%s.html')
  # 爬取所有链接
  for i in pageurl:
    for k in geturllist(i).items():
      jobs.append(gevent.spawn(download, k))
  gevent.joinall(jobs)

以上所述就是本文的全部内容了,希望大家能够喜欢。

Python 相关文章推荐
ubuntu系统下 python链接mysql数据库的方法
Jan 09 Python
Python中sort和sorted函数代码解析
Jan 25 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
Mar 22 Python
django自带的server 让外网主机访问方法
May 14 Python
Sanic框架异常处理与中间件操作实例分析
Jul 16 Python
解决使用PyCharm时无法启动控制台的问题
Jan 19 Python
详解DeBug Python神级工具PySnooper
Jul 03 Python
使用python绘制二维图形示例
Nov 22 Python
通过实例学习Python Excel操作
Jan 06 Python
Python生成词云的实现代码
Jan 14 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
windows下Pycharm安装opencv的多种方法
Mar 05 Python
Python实现给qq邮箱发送邮件的方法
May 28 #Python
Python import用法以及与from...import的区别
May 28 #Python
Python中使用不同编码读写txt文件详解
May 28 #Python
Python实现统计英文单词个数及字符串分割代码
May 28 #Python
python处理大数字的方法
May 27 #Python
python类继承用法实例分析
May 27 #Python
python显示生日是星期几的方法
May 27 #Python
You might like
PHP写的求多项式导数的函数代码
2012/07/04 PHP
php文件读取方法实例分析
2015/06/20 PHP
php正则修正符用法实例详解
2016/12/29 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
JavaScript 题型问答有答案参考
2010/02/17 Javascript
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
jquery 图片截取工具jquery.imagecropper.js
2010/04/09 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
jquery+php随机生成红包金额数量代码分享
2015/08/27 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
前端页面文件拖拽上传模块js代码示例
2017/05/19 Javascript
Node.js使用Angular简单示例
2018/05/11 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
vue实现拖拽效果
2019/12/23 Javascript
jquery实现点击左右按钮切换图片
2021/01/27 jQuery
Python的类实例属性访问规则探讨
2015/01/30 Python
Python的Bottle框架中获取制定cookie的教程
2015/04/24 Python
Python基于DES算法加密解密实例
2015/06/03 Python
Python实现简易版的Web服务器(推荐)
2018/01/29 Python
python实现聊天小程序
2018/03/13 Python
浅谈django2.0 ForeignKey参数的变化
2019/08/06 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
复古风格的女装和装饰品:ModCloth
2017/12/29 全球购物
毕业生个人投资创业计划书
2014/01/04 职场文书
五好党支部事迹材料
2014/02/06 职场文书
《穷人》教学反思
2014/04/08 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
奶茶店创业计划书
2014/08/14 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书