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系列之数据处理编程实例(一)
May 22 Python
Python中几种操作字符串的方法的介绍
Apr 09 Python
Python中asyncore异步模块的用法及实现httpclient的实例
Jun 28 Python
python写一个md5解密器示例
Feb 23 Python
python实现教务管理系统
Mar 12 Python
Python中的TCP socket写法示例
May 11 Python
python读取文本中的坐标方法
Oct 14 Python
Python 实用技巧之利用Shell通配符做字符串匹配
Aug 23 Python
Python中断多重循环的思路总结
Oct 04 Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 Python
Python3如何在服务器打印资产信息
Aug 27 Python
python在linux环境下安装skimage的示例代码
Oct 14 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 MSSQL 存储过程的方法
2008/12/24 PHP
php 运行效率总结(提示程序速度)
2009/11/26 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
JavaScript 封装一个tab效果源码分享
2015/09/15 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
微信小程序input抖动问题的修复方法
2021/03/03 Javascript
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
Apache如何部署django项目
2017/05/21 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
TensorFlow实现从txt文件读取数据
2020/02/05 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
2021/01/05 Python
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
幼儿园儿童节活动主持词+串词大全
2014/03/21 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
Python之基础函数案例详解
2021/08/30 Python
阿里云日志过滤器配置日志服务
2022/04/09 Servers