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 可爱的大小写
Sep 06 Python
python 获取文件列表(或是目录例表)
Mar 25 Python
Python 功能和特点(新手必学)
Dec 30 Python
深入解读Python解析XML的几种方式
Feb 16 Python
python使用正则表达式替换匹配成功的组
Nov 17 Python
python3库numpy数组属性的查看方法
Apr 17 Python
python 高效去重复 支持GB级别大文件的示例代码
Nov 08 Python
python3 线性回归验证方法
Jul 09 Python
python如何获取apk的packagename和activity
Jan 10 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
Win10下用Anaconda安装TensorFlow(图文教程)
Jun 18 Python
Python tkinter之ComboBox(下拉框)的使用简介
Feb 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
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
JS获取计算机mac地址以及IP的实现方法
2014/01/08 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
详解JavaScript中循环控制语句的用法
2015/06/03 Javascript
JavaScript实现广告的关闭与显示效果实例
2015/07/02 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
jQuery实现宽屏图片轮播实例教程
2015/11/24 Javascript
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
javascript解决小数的加减乘除精度丢失的方案
2016/05/31 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
原生ajax处理json格式数据的实例代码
2016/12/25 Javascript
easyUI下拉列表点击事件使用方法
2017/05/18 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
利用Python中的输入和输出功能进行读取和写入的教程
2015/04/14 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
怎样写好自荐信和推荐信
2013/12/26 职场文书
公证书样本
2014/04/10 职场文书
高三励志标语
2014/06/05 职场文书
解除劳动合同证明书
2014/09/26 职场文书
群众路线自我剖析材料
2014/10/08 职场文书
2014年度思想工作总结
2014/11/27 职场文书
2015年收银工作总结范文
2015/04/01 职场文书
纯CSS实现酷炫的霓虹灯效果
2021/04/13 HTML / CSS
OpenCV-Python实现油画效果的实例
2021/06/08 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
MySQL系列之开篇 MySQL关系型数据库基础概念
2021/07/02 MySQL