1. 程式人生 > >[定向爬蟲] 網絡爬蟲實例2-淘寶定向爬蟲

[定向爬蟲] 網絡爬蟲實例2-淘寶定向爬蟲

break 解析 tao 運行 title out 繼續 pri 字符串分割

import requests  
import re  
import time  

#獲取html頁面  
def getHTMLText(url):  
    try:  
        r = requests.get(url,timeout = 30)  
        r.raise_for_status()  
        r.encoding = "utf-8"  #可以節約時間  
        return r.text  
    except:  
        return ""  
    
#對獲取的每一個頁面進行解析,ilt是結果的列表類型  
def parsePage(ilt,html):  
    try:  
        #"view_price":"149.00"  
        plt = re.findall(r‘\"view_price\"\:\"[\d\.]*\"‘,html)        
        #"raw_title":"2017春季新款雙肩包女韓版時尚pu背包流蘇子母包百搭學院風書包"  
        tlt = re.findall(r‘\"raw_title\"\:\".*?\"‘,html)  
        for i in range(len(plt)):  
            #字符串分割獲取商品的價格,eval()函數能夠將字符串的最外層的雙引號或單引號去掉  
            price = eval(plt[i].split(‘:‘)[1])   
            title = eval(tlt[i].split(":")[1])   
            ilt.append([price,title])  
    except:  
        print("")  
        
#將解析後的信息輸出  
def printGoodsList(ilt):  
    tplt = "{:4}\t{:8}\t{:16}"  
    #打印輸出信息的表頭  
    print(tplt.format("序號","價格","商品名稱"))   
    count = 0  
    for i in ilt:  
        count +=1        #序號,價格,名稱  
        print(tplt.format(count,i[0],i[1]))  
        
#定義主函數,記錄整個程序運行的過程  
def main():  
    start_time = time.time()  
    #搜索關鍵詞goods  
    goods = "書包"  
    #設定向下一頁爬取的深度,爬取頁數depth  
    depth = 2  
    #爬取的URL  
    start_url = "https://s.taobao.com/search?q=" + goods  
    #定義變量infoList 表示輸出結果  
    infoList = []  
    #因為每一個頁面URL不同,需要對每一個頁面進行單獨訪問和處理  
    for i in range(depth):  
        try:#使用try多獲取頁面進行異常判斷,如果某頁面解析出問題,可以跳過該頁面,往下繼續,不會造成出現解析錯誤,程序停止  
            #對每一個頁面的URL鏈接進行設計,因為淘寶每個頁面顯示44個商品  
            url = start_url + ‘&s=‘ + str(44*i)  
            html = getHTMLText(url)  #獲取頁面內容  
            parsePage(infoList,html) #對獲取的頁面進行處理  
        except:  
            #continue語句只是結束本次循環,而不會終止循環的執行。break語句則是終止整個循環過程  
            continue  
    #將獲取的頁面信息輸出  
    printGoodsList(infoList)  
    end_time = time.time()  
    print(end_time-start_time)  
    print(round(end_time-start_time))
    
main()  

  

[定向爬蟲] 網絡爬蟲實例2-淘寶定向爬蟲