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 相关文章推荐
Python生成随机密码
Mar 10 Python
pygame学习笔记(4):声音控制
Apr 15 Python
Python类属性与实例属性用法分析
May 09 Python
Python Requests安装与简单运用
Apr 07 Python
通过Python爬虫代理IP快速增加博客阅读量
Dec 14 Python
centos6.7安装python2.7.11的具体方法
Jan 16 Python
R语言 vs Python对比:数据分析哪家强?
Nov 17 Python
python MysqlDb模块安装及其使用详解
Feb 23 Python
Python实现将Excel转换成xml的方法示例
Aug 25 Python
Python切图九宫格的实现方法
Oct 10 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
python logging模块的使用
Sep 07 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
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
jquery 表单取值常用代码
2009/12/22 Javascript
Javascript 读书笔记索引贴
2010/01/11 Javascript
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
extjs之去除s.gif的影响
2010/12/25 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
vue 获取视频时长的实例代码
2019/08/20 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
2021/01/29 Vue.js
Python生成器generator用法示例
2018/08/10 Python
Python2和Python3.6环境解决共存问题
2018/11/09 Python
Python 学习教程之networkx
2019/04/15 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
python 决策树算法的实现
2020/10/09 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
法国时尚童装网站:Melijoe
2016/08/10 全球购物
戴尔美国官网:Dell
2016/08/31 全球购物
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
法国高保真音响和家庭影院商店:Son Video
2019/04/26 全球购物
财务总经理岗位职责
2014/02/16 职场文书
项目经理任命书范本
2014/06/05 职场文书
市场调查策划方案
2014/06/10 职场文书
医德医风个人工作总结2014
2014/11/14 职场文书
毕业生自荐信范文
2015/03/05 职场文书
Python基础之元类详解
2021/04/29 Python
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python