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 相关文章推荐
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
Jan 22 Python
Python获取网页上图片下载地址的方法
Mar 11 Python
Python数据类型详解(二)列表
May 08 Python
对Python的多进程锁的使用方法详解
Feb 18 Python
详解pandas删除缺失数据(pd.dropna()方法)
Jun 25 Python
python 哈希表实现简单python字典代码实例
Sep 27 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
Django实现后台上传并显示图片功能
May 29 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
Aug 04 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
Python 第三方库 openpyxl 的安装过程
Dec 24 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
mysql5写入和读出乱码解决
2006/11/25 PHP
php adodb分页实现代码
2009/03/19 PHP
PHP 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
php实现RSA加密类实例
2015/03/26 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
php无法连接mysql数据库的正确解决方法
2016/07/01 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
2016/09/23 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
php封装实现钉钉机器人报警接口的示例代码
2020/08/08 PHP
一个简单的javascript类定义例子
2009/09/12 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
jquery提升性能最佳实践小结
2010/12/06 Javascript
NodeJS 模块开发及发布详解分享
2012/03/07 NodeJs
jQuery渐变发光导航菜单的实例代码
2013/03/27 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
详解jQuery中的DOM操作
2016/12/23 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
面向对象设计的原则是什么
2013/02/13 面试题
向领导表决心的话
2014/03/11 职场文书
七一建党节演讲稿
2014/09/11 职场文书
酒店辞职书范文
2015/02/26 职场文书
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS