日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python爬取淘宝商品价格销量信息

發(fā)布時間:2025/3/20 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python爬取淘宝商品价格销量信息 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

用到了requests庫和re庫?

import requests import re lis = [] # https://s.taobao.com/search?q=榮耀v20&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306 # https://s.taobao.com/search?q=榮耀v20&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306&bcoffset=3&ntoffset=3&p4ppushleft=1%2C48&s=44 # https://s.taobao.com/search?q=榮耀V20&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306&bcoffset=3&ntoffset=3&p4ppushleft=1%2C48&s=88 kv = {"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36","Cookie":'換成自己的Cookie' }# 獲取html頁面 def getHTMLpages(url):try:r = requests.get(url, headers=kv, timeout=30)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return ""# 將商品信息存入列表 def getGoodsinfo(lis, html):# "raw_title":"honor/榮耀 榮耀play 微商手機(jī) 營銷手機(jī) 小V 不凡 霸屏推"# "view_price":"6280.00"# "view_sales":"7人付款"或者"2.0萬+人付款"或者"6000+人付款"title = re.findall(r'\"raw_title\"\:\".*?\"', html) # .字符,*0或n次擴(kuò)展,?表示最小匹配price = re.findall(r'\"view_price\"\:\"[\d.]*\"',html) # [\d.]*表示0-9或者.的0次或者多次取值sales = re.findall(r'\"view_sales\"\:\"[\d\.]*[\u4e00-\u9fa5]?\+?人付款\"',html) # [\u4e00-\u9fa5]表示中文字符for i in range(len(title)):tit = eval(title[i].split(':')[1])pri = eval(price[i].split(':')[1])sal = eval(sales[i].split(':')[1])lis.append([tit, pri, sal])# return lis# 從列表中讀取商品信息 def printGoodsinfo(lis):form = "{:^2}\t{:<50}\t{:>8}\t{:>8},"print(form.format("序號", "商品名稱", "商品價格", "商品銷量", chr(12288)))# for i in range(len(lis)):# print("{:^3}\t{:^20}\t{:^10}\t{:^20}".format(i+1,lis[i][0],lis[i][1],lis[i][2],lis[i][3]))count = 1print()for i in lis: # i代表一行print(form.format(count, i[0], i[1], i[2], chr(12288)))count += 1if __name__ == "__main__":# f = open("D:\VscodePy\pytest\html.txt", encoding='utf-8')# sss = f.read()# f.close()s = input("請輸入要查詢的商品名稱:")start_url = "https://s.taobao.com/search?q=" + sprint(start_url)count = eval(input("請輸入要查詢的頁數(shù):"))for i in range(count):url = start_url + '&s=' + str(i * 44)html = getHTMLpages(url)# print(html)getGoodsinfo(lis, html)# getGoodsinfo(lis, sss)printGoodsinfo(lis)

運(yùn)行結(jié)果:

注意: 同一個cookie和ip如果反復(fù)爬取,會被淘寶的反爬限制,會讓滑動驗證,這時候如果不想辦法解決這個滑動驗證,就會出現(xiàn)爬取數(shù)據(jù)為空的情況,因為你獲取到的網(wǎng)頁是滑動驗證頁面的網(wǎng)頁。我的做法是把一次爬取下來的網(wǎng)頁存放到一個文本文件里面,然后調(diào)試代碼時直接從那個文件讀取網(wǎng)頁代碼就行,這樣就不需要反復(fù)爬取了。上面貼的代碼是我調(diào)試后的最終代碼。

總結(jié)

以上是生活随笔為你收集整理的Python爬取淘宝商品价格销量信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。