Python下载懒人图库JavaScript特效

这是一个简单的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)

以上所述就是本文的全部内容了,希望大家能够喜欢。

(0)

相关推荐

  • python通过urllib2爬网页上种子下载示例

    通过urllib2.re模块抓种子 思路 1.用程序登录论坛(如果需要登录才能访问的版块) 2.访问指定版块 3.遍历帖子(先取指定页,再遍历页面所有帖子的url) 4.循环访问所有帖子url,从帖子页面代码中取种子下载地址(通过正则表达式或第三方页面解析库) 5.访问种子页面下载种子 复制代码 代码如下: import urllibimport urllib2import cookielibimport reimport sysimport os # site is website addre

  • python支持断点续传的多线程下载示例

    复制代码 代码如下: #! /usr/bin/env python#coding=utf-8 from __future__ import unicode_literals from multiprocessing.dummy import Pool as ThreadPoolimport threading import osimport sysimport cPicklefrom collections import namedtupleimport urllib2from urlparse

  • Python实现股市信息下载的方法

    本文实例讲述了Python实现股市信息下载的方法.分享给大家供大家参考.具体如下: 该程序下载来自yahoo财经的股市信息. import urllib def getURL(url): socket = urllib.urlopen(url) readSocket = socket.read() socket.close() return readSocket def printInfo(listInfo): print "Stock Symbol: " , listInfo[0]

  • python实现批量下载新浪博客的方法

    本文实例讲述了python实现批量下载新浪博客的方法.分享给大家供大家参考.具体实现方法如下: # coding=utf-8 import urllib2 import sys, os import re import string from BeautifulSoup import BeautifulSoup def encode(s): return s.decode('utf-8').encode(sys.stdout.encoding, 'ignore') def getHTML(url

  • python操作ssh实现服务器日志下载的方法

    本文实例讲述了python操作ssh实现服务器日志下载的方法.分享给大家供大家参考.具体实现方法如下: #coding:utf-8 """ ssh操作例子 实现了服务器日志下载 2012-08-24 yywolf """ import paramiko import time hostname="????" port=22 username="app" password="????" i

  • python基于urllib实现按照百度音乐分类下载mp3的方法

    本文实例讲述了python基于urllib实现按照百度音乐分类下载mp3的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python #-*- coding: utf-8 -*- import urllib import re baseurl = "http://music.baidu.com" url = "http://music.baidu.com/search/tag?key=经典流行" html = urllib.urlop

  • Python使用urllib2模块实现断点续传下载的方法

    本文实例讲述了Python使用urllib2模块实现断点续传下载的方法.分享给大家供大家参考.具体分析如下: 在使用HTTP协议进行下载的时候只需要在头上设置一下Range的范围就可以进行断点续传下载,当然,首先服务器需要支持断点续传. 利用Python的urllib2模块完成断点续传下载的例子: #!/usr/bin/python # -*- coding: UTF-8 -* ''' Created on 2013-04-15 Created by RobinTang A demo for R

  • Python实现批量下载文件

    Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_all() from gevent.pool import Pool import requests import sys import os def download(url): chrome = 'Mozilla/5.0 (X11; Linux i86_64) AppleWebKit/537.36

  • Python实现豆瓣图片下载的方法

    本文实例讲述了Python实现豆瓣图片下载的方法.分享给大家供大家参考.具体分析如下: 1 用 tk 封装一下 2 用户可以自己输入图片url download_douban_album # -*-coding:UTF-8 -*- import re import urllib def count_percent(a, b, c): per = 100.0 * a * b / c if per > 100: per = 100 print '%.2f%%' % per def get_url()

  • Python下载懒人图库JavaScript特效

    这是一个简单的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() ''' Descripti

  • Python进阶:生成器 懒人版本的迭代器详解

    从容器.可迭代对象谈起 所有的容器都是可迭代的(iterable),迭代器提供了一个next方法.iter()返回一个迭代器,通过next()函数可以实现遍历. def is_iterable(param): try: iter(param) return True except TypeError: return False params = [ 1234, '1234', [1, 2, 3, 4], set([1, 2, 3, 4]), {1:1, 2:2, 3:3, 4:4}, (1, 2

  • python下载卫星云图合成gif的方法示例

    Python下载中央气象台卫星云图后保存为gif并播放,大致步骤: 获取URL 下载图片 合成GIF 播放GIF 1.获取URL 1.1 先下载一份网页源码看看网页结构 保存为:response.txt #http库 import requests #准备http请求头 headers = {"user-agent": "firefox"} #中央气象台卫星云图网页 url = 'http://www.nmc.cn/publish/satellite/fy2.htm

  • Python 下载Bing壁纸的示例

    这个示例使用的Python版本为3.7版本, 一.bing壁纸接口 访问bing的官网,通过浏览器开发者工具,查看网络可以找到一个请求壁纸的接口,至于怎么判断的,我是发现当我把鼠标放在切换壁纸的左右箭头时,发现发送了一个请求,查看请求里面是有当前的壁纸信息的,链接.描述等等-- 于是乎得到了这个接口,这个接口似乎就是获取壁纸信息的接口了 https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=1600743189

  • 用python下载百度文库的代码

    先去下载一个叫SWFToImage.dll的东西 再建立一个bat文件,并运行: 复制代码 代码如下: COPY SWFToImage.dll %windir%\system32 regsvr32 %windir%\system32\SWFToImage.dll 复制代码 代码如下: #用python下载百度文库的代码,需要的同志请修改,下面有提示 #http://www.cnblogs.com/dearplain/ #code by plain import urllib2 import wi

  • python下载文件记录黑名单的实现代码

    具体代码如下所示: #!/usr/bin/python # -*- coding: GBK -*- # -*- coding: UTF-8 -*- from ftplib import FTP import os import datetime ftp_server = '127.0.0.1' # 对应ftp服务器地址 username = 'ponshine' # 用户名 password = '1qaz2wsx' # 密码 ftp_path = '/GBCC/' # ftp目录 local_

  • python下载文件时显示下载进度的方法

    本文实例讲述了python下载文件时显示下载进度的方法.分享给大家供大家参考.具体分析如下: 将这段代码放入你的脚本中,类似:urllib.urlretrieve(getFile, saveFile, reporthook=report) 第三个参数如下面的函数定义report,urlretrieve下载文件时会实时回调report函数,显示下载进度 def report(count, blockSize, totalSize): percent = int(count*blockSize*10

  • 同一个网页中实现多个JavaScript特效的方法

    本文实例讲述了同一个网页中实现多个JavaScript特效的方法.分享给大家供大家参考.具体分析如下: 一般来说,在网页中,如果出现两次<script type="text/javascript"></script>标签,所有的JavaScipt脚本都不会再生效,只能出现一次<script type="text/javascript"></script>标签,但是,同一个网页中常常需要多个JavaScript特效. 一

  • javascript特效实现——当前时间和倒计时效果的简单实例

    这个效果的实现关键是对Date对象和setTimeout的使用. 一共有三个例子,HTML结构如下,就不添加CSS样式了. <body> 当前时间:<p id="p1"></p> 高考倒计时:<p id="p2"></p> 限时抢购:<p id="p3"></p> </body> 主要体会javascript的实现 window.onload=func

  • Python下载指定页面上图片的方法

    本文实例讲述了Python下载指定页面上图片的方法.分享给大家供大家参考,具体如下: #!/usr/bin/python #coding:utf8 import re import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html): reg = r'src="(.*?\.jpg)" ' imgre = re.compile(reg) im

随机推荐