1. 程式人生 > >無比強大!Python抓取cssmoban網站的模版並下載

無比強大!Python抓取cssmoban網站的模版並下載

Python實現抓取http://www.cssmoban.com/cssthemes網站的模版並下載

實現程式碼

# -*- coding: utf-8 -*-
import urlparse
import urllib2
import re
import os  
import os.path

URL='http://www.cssmoban.com/cssthemes'

#全域性超時設定 
urllib2.socket.setdefaulttimeout(500)

#根據url獲取內容
def getUrlContent(url):
    response = urllib2.urlopen(url)
    html = response.read();
    return html

#獲取html中的a標籤,且格式是<a target="_blank" href="/showcase/*">的
def getAllUrl(html):
    return re.findall('<a[\\s]+href="/cssthemes/\d+\.shtml">.*?\/a>',html)

#獲取下載檔案的標題
def getDownTitle(html):
    return re.findall('\<h1>(.*?)\</h1>',html)

#獲取檔案下載的url
def getDownUrl(html):
    return re.findall('<a.*?class="button btn-down".*?\/a>',html)

#獲取下一頁的url
def getNextUrl(html):
    return re.findall('<a.*?下一頁</a>',html)

#下載檔案
def download(title,url):
    result = urllib2.urlopen(url).read()
    if os.path.exists("template/")==False:
        os.makedirs("template/")
    newname=("template/"+title.decode('utf-8'))
    newname=newname+'.'+url[url.rfind('.')+1:len(url)]
    open(newname, "wb").write(result)

#記錄日誌
def i(msg):
    fileobj=open('info.log','a')
    fileobj.write(msg+'\n')
    fileobj.close();
    print msg
#記錄錯誤日誌
def e(msg):
    fileobj=open('error.log','a')
    fileobj.write(msg+'\n')
    fileobj.close();
    print msg
if __name__ == '__main__':

    #print getDownUrl('<a href="http://down.cssmoban.com/cssthemes1/cctp_17_jeans.zip" target="_blank" class="button btn-down" title="免費下載"><i class="icon-down icon-white"></i><i class="icon-white icon-down-transiton"></i>免費下載</a>')
    
    html= getUrlContent(URL)
    i('開始下載:%s' %(URL))
    while True:
        lista= getAllUrl(html);
        #print lista;
        nextPage=getNextUrl(html)
        #print nextPage[0]
        nextUrl=''
        #i('下一頁%s'%(nextPage))
        
        if len(nextPage)<=0:
            e('地址:%s,未找到下一頁,程式退出' %(nextPage))
            break;
        
        nextUrl=nextPage[0]
        nextUrl=URL+'/'+nextUrl[nextUrl.index('href="')+6:nextUrl.index('" target')]
        #print nextPage
        for a in lista:
            downGotoUrl=''
            try:
                #print a.decode('utf-8')
                downGotoUrl=(URL+''+a[a.index('href="')+6:a.index('">')])
                downGotoUrl=downGotoUrl.replace(URL,'http://www.cssmoban.com')
                #print downGotoUrl
                downHtml=getUrlContent(downGotoUrl)
                #print downHtml
                downTitleList= getDownTitle(downHtml)
                downTitle=''
                if len(downTitleList)>0:
                    downTitle=downTitleList[0]
                #print downTitle
                downUrlList= getDownUrl(downHtml)
                downUrl=''
                if len(downUrlList)>0:
                    downUrl=downUrlList[0]
                downUrl= downUrl[downUrl.index('href="')+6:downUrl.index('" target')]
                #print downUrl
                i('開始下載:%s,檔名:%s' %(downUrl,downTitle))

                download(downTitle,downUrl)
                i('%s下載完成,儲存檔名:%s' %(downUrl,downTitle))
            except Exception,e:
                e('地址:%s下載失敗,失敗資訊:' %(downGotoUrl))
                e(str(e))
                

        i('-----------------------------------------')
        i('執行下一頁:%s' %(nextUrl))
        html= getUrlContent(nextUrl)
    
        


相關推薦

無比強大Pythoncssmoban網站模版下載

Python實現抓取http://www.cssmoban.com/cssthemes網站的模版並下載 實現程式碼 # -*- coding: utf-8 -*- import urlparse import urllib2 import re import os i

無比強大Pythoncssmoban站點的模版下載

jea blank file timeout 全局 -- 文件的 pre target Python實現抓取http://www.cssmoban.com/cssthemes站點的模版並下載 實現代碼 # -*- coding: utf-8 -*- im

python "一個"網站文章信息放入數據庫

python 文章 爬蟲 # coding:utf-8 import requests from bs4 import BeautifulSoup import json import time import datetime import pymysql import sys reload(sy

使用python網站圖片,下載到本地

使用python抓取網站圖片,下載到本地 看程式碼 import os import random import urllib.request def imgs(url): try: rep = urllib.request.Request(url)

python爬蟲視訊網站所有電影

執行環境 IDE丨pycharm 版本丨Python3.6 系統丨Windows ·實現目的與思路· 目的: 實現對騰訊視訊目標url的解析與下載,由於第三方vip解析,只提供線上觀看,隱藏想實現對目標視訊的下載 思路: 首先拿到想要看的騰訊電影url,通過第三方vip視訊解析網站進

Python朋友圈資料,通過人臉識別全面分析好友看透朋友圈

微信:一個提供即時通訊服務的應用程式,更是一種生活方式,超過數十億的使用者,越來越多的人選擇使用它來溝通交流。 不知從何時起,我們的生活離不開微信,每天睜開眼的第一件事就是開啟微信,關注著朋友圈裡好友的動態,而朋友圈中或虛或實的狀態更新,似乎都在證明自己的“有趣”,尋找那份

Python分析了1982場英雄聯盟資料,教你開局前預測遊戲對局勝負

英雄聯盟想必大多數讀者不會陌生,這是一款來自拳頭,由騰訊代理的大型網路遊戲,現在一進網咖,你就能發現一大片玩英雄聯盟的人。在2017年中國戰隊無緣鳥巢的世界總決賽後,一大片人選擇了棄遊,只是終究沒躲過“真香定理”,在2018年的中旬,又有大批戰友又回到熟悉的召喚師峽谷戰場,時至今日,英雄聯盟已經不僅僅是一款遊

Python分析了1982場英雄聯盟數據,教你開局前預測遊戲對局勝負

cross 2018年 eva root 結果 sigmoid tcl optimizer json 英雄聯盟想必大多數讀者不會陌生,這是一款來自拳頭,由騰訊代理的大型網絡遊戲,現在一進網吧,你就能發現一大片玩英雄聯盟的人。在2017年中國戰隊無緣鳥巢的世界總決賽後,一大片

Python歌詞自制FreeStyle

故事的起因是上週六看《中國好聲音》,一個周杰倫戰隊的學員用人工智慧寫的歌詞,於是乎,我也有了這個想法,程式碼的主題思路是看Crossin先生的文章,雖然最後不能寫出一首歌,但是押韻腳這事情分分鐘搞定了 主題的思路,就是先抓取很多首歌曲的歌詞,利用jieba分詞後,將分好的詞按照押韻

Python電影天堂,零基礎都可以學?原始碼&視訊,大讚

我知道,大家肯定是看到Python原始碼&視訊教程才進來的。小編說到做到,此次利用Python爬取電影天堂包含視訊教程、以及原始碼。所以說零基礎的Python新手也能夠輕鬆學會,真的一點都不過分。先看我們的部分程式碼與爬取到的結果:爬取到的電影資源:步驟:關於怎麼快速

網易雲音樂評論催淚刷屏?我用Python了1008328條熱評告訴你為什麼

如果再過20年,你還會記得那些年上過的網易雲熱評嗎?看了那麼多的網易雲熱評,技術思維作祟,我終於

Python selenium爬蟲船舶網站資料(動態頁面)

很早之前就開始學習爬蟲了,一直想學習爬取動態頁面,正巧工作中需要用到一個船舶資訊的網站,每次都是手動查詢太麻煩了,昨天下午研究了一下午,總算搞透徹了,基本步驟如下: 1、啟動瀏覽器 2、開啟網頁 3、模擬輸入,模擬點選 4、稍等一會(很重要) 5、獲取

python需要登入網站資料的方法總結

scrapy.FormRequest login.py class LoginSpider(scrapy.Spider): name = 'login_spider' start_urls = ['http://www.login.com

Python專案實戰:大型網站JS特效模板

前言 今天為大家結果一個利用Python爬蟲程式來獲取懶人相簿的JS特效模板,利用到了gevent,有了gevent,協程的使用

Python學院新聞報告

滿足 imp 實驗 源代碼 ges tail view paste rom Python案例 scrapy抓取學院新聞報告 任務 抓取四川大學公共管理學院官網(http://ggglxy.scu.edu.cn)所有的新聞咨詢. 實驗流程 1.確定抓取目標.2.制定抓取規則.

python

info 奧巴馬 www word ref str source div term 我要抓取奧巴馬每周的演講內容http://www.putclub.com/html/radio/VOA/presidentspeech/index.html 如果手動提取,就需要一個個點進去

pythonbing主頁背景圖片

replace utf bytes for json格式 module imp urlopen 有變 最初Python2寫法: #!/usr/bin/env python # -*- coding:utf-8 -*- # -*- author:nancy -*- # pyt

Python手機APP中內容

quest 手機app 開始 clas tex json 完成 keep 抓取 首先下載Wireshark和模擬器(天天模擬器,夜神模擬器),天天模擬器在自帶的應用商店裏面能夠登錄微信。 然後打開Wireshark選擇一個網卡開始抓包。 開始抓包後,在模擬器中要抓取的APP

python cisco交換機配置文件

cal pytho quit sys led ... eof tex passwd #!/usr/bin/python import sys import time import os import pexpect now = time.strftime(‘%Y-%

python B站視頻評論,制作詞雲

port mil query 雲圖 ges cal 爬取 close hid python 作為爬蟲利器,與其有很多強大的第三方庫是分不開的,今天說的爬取B站的視頻評論,其實重點在分析得到的評論化作嵌套的字典,在其中取出想要的內容。層層嵌套,眼花繚亂,分析時應細致!步驟分為