您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關python3如何爬取淘寶信息,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
# encoding:utf-8 import re # 使用正則 匹配想要的數據 import requests # 使用requests得到網頁源碼
這個函數是用來得到源碼
# 得到主函數傳入的鏈接 def getHtmlText(url): try: # 異常處理 # 得到你傳入的URL鏈接 設置超時時間3秒 r = requests.get(url, timeout=3) # 判斷它的http狀態碼 r.raise_for_status() # 設置它的編碼 encoding是設置它的頭部編碼 apparent_encoding是從返回網頁中分析它的編碼格式 r.encoding = r.apparent_encoding # 返回源代碼 return r.text except: # 發生異常返回空 return ''
這個函數使用來解析你的源代碼 獲取你想要的數據
# 解析你的網頁信息 def parsePage(ilt, html): # 異常處理 try: # 找到書包的價格 plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"', html) # 找到書包的名稱 tlt = re.findall(r'\"raw_title\"\:\".*?\"', html) # 找到書包的地址 add = re.findall(r'\"item_loc\"\:\".*?\"', html) # 找到書包的圖片鏈接 img = re.findall(r'\"pic_url\"\:\".*?\"', html) # 得到這個內容放入主函數中的列表 for i in range(len(plt)): price = eval(plt[i].split(':')[1]) title = eval(tlt[i].split(':')[1]) address = eval(add[i].split(':')[1]) imgs = eval(img[i].split(':')[1]) ilt.append([price, title, address, imgs]) except: # 放生異常輸出空字符串 print('')
# 得到主函數傳入的列表 def printGoodsList(ilt): # 每個列之間用tplt的放是隔開 tplt = '{:4}\t{:8}\t{:16}\t{:32}' # 這個是整個的標題 print(tplt.format('序號', '價格', '商品名稱','地址', '圖片地址')) count = 0 # 統計有多少的序號 for g in ilt: count = count + 1 # 循環一遍加一 print(tplt.format(count, g[0], g[1], g[2]), g[3]) # 輸出你得到的數據
# 定義主函數 main def main(): goods = '書包' # 你要搜索的東西 depth = 2 # 你想要得到幾頁的東西 start_url = 'https://s.taobao.com/search?q=' + goods # 你搜索的網址加上你的搜索東西 infoList = [] # 自定義的空列表用來存放你的到的數據 for i in range(depth): # 循環你的頁數 try: # 異常處理 url = start_url + '&s' + str(44 * i) # 得到你的網址 html = getHtmlText(url) # 得到url傳入到你要得到url的函數中 parsePage(infoList, html) # 得到你的html源碼 放入解析的網頁中 except: # 發生異常跳過 continue # 把列表中的數據放入解析的函數中 printGoodsList(infoList)
# 代碼調試片段 if __name__ == '__main__': main() # 調用主函數
關于“python3如何爬取淘寶信息”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。