Python下载懒人图库JavaScript特效

 更新时间:2015年05月28日 09:44:05   投稿:hebedich  
本文给大家分享的是使用Python 爬虫抓取懒人图库的JS脚本特效模板的代码,使用了第三方库gevent来实现,有需要的小伙伴可以参考下。

这是一个简单的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中实现将一张图片剪切成四份的方法

    今天小编就为大家分享一篇在python中实现将一张图片剪切成四份的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python常用数据库接口sqlite3和MySQLdb学习指南

    Python常用数据库接口sqlite3和MySQLdb学习指南

    在本章节中,我们将学习 Python 中常用的数据库接口,包括 sqlite3用于SQLite数据库和MySQLdb用于 MySQL 数据库,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Django接收自定义http header过程详解

    Django接收自定义http header过程详解

    这篇文章主要介绍了Django接收自定义http header过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 如何利用Opencv实现图像的加密解密

    如何利用Opencv实现图像的加密解密

    一般情况下,图像的加密和解密过程是通过按位异或运算实现的,下面这篇文章主要给大家介绍了关于如何利用Opencv实现图像加密解密的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2021-10-10
  • python批量检查两个对应的txt文件的行数是否一致的实例代码

    python批量检查两个对应的txt文件的行数是否一致的实例代码

    这篇文章主要介绍了python批量检查两个对应的txt文件的行数是否一致,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • python3.7.3版本和django2.2.3版本是否可以兼容

    python3.7.3版本和django2.2.3版本是否可以兼容

    在本篇文章里小编给大家整理的是一篇关于python3.7.3版本和django2.2.3版本是否可以兼容的相关知识点内容,有兴趣的朋友们可以学习下。
    2020-09-09
  • Jupyter Notebook的连接密码 token查询方式

    Jupyter Notebook的连接密码 token查询方式

    这篇文章主要介绍了Jupyter Notebook的连接密码 token查询方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 关于tf.matmul() 和tf.multiply() 的区别说明

    关于tf.matmul() 和tf.multiply() 的区别说明

    这篇文章主要介绍了关于tf.matmul() 和tf.multiply() 的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python中实现精确的浮点数运算详解

    python中实现精确的浮点数运算详解

    计算机智能处理可数集合的运算,但是全体实数是不可数的,所以计算机只能用一些奇怪的方法来拟合他,于是就产生了浮点数。下面这篇文章主要给大家介绍了关于python中实现精确浮点数运算的相关资料,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-11-11
  • Python txt文件如何转换成字典

    Python txt文件如何转换成字典

    这篇文章主要介绍了Python txt文件如何转换成字典,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11

最新评论