淘宝比价 2020

这里使用非贪婪模式re.findall(r’ (.*?) ) 直接获取信息的列表,可以省去去引号的操作.
直接运行是无法成功的,要自己登录淘宝F12,获取cookies信息,粘贴到cookies =’ ’ 中.
cookies转换成字典操作见:https://blog.csdn.net/sfwwdd/article/details/108906081.

import requests
import re
import time
def getHTMLText(url):#获得网页信息
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}#使用浏览器header
    try:
        cookies = 'thw=cn; hng=CN%7Czh-CN%7CCNY%7C156; cna=JVhlEUOo6TsCAXPVTc+F7MCQ; '#开发者工具获取cookies
        cookies = dict([c.split('=',1) for c in cookies.split(';')])#转换成键值对的字典
        r = requests.get(url,cookies=cookies,headers=headers,timeout=40) #放入请求头
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return ""
     
def parsePage(ilt, html):#对所得页面进行解析
    try:
        nSales = []
        plt = re.findall(r'"view_price":"(.*?)"',html) #非贪婪模式得到名称
        tlt = re.findall(r'"raw_title":"(.*?)"',html)    #非贪婪模式得到价格
        sales = re.findall(r'"view_sales":"(.*?)人付款"',html) #非贪婪模式得到销量
        for sale in sales:
            n_sale = re.sub(r'[\.\+]','',re.sub(r'万\+','0000',sale))#列表不能替换,要遍历成字符串,注意转义
            nSales.append(int(n_sale))#必须将字符串转纯数字才能排序
        for i in zip(plt,tlt,nSales): #打包到一个列表,内部是元组
            ilt.append(i)
    except:
        print("")
 
def printGoodsList(ilt):#信息输出显示到屏幕上
    tplt = "{0:<4}\t{1:<8}\t{2:{4}^30}\t{3:<12}\t{4:^10}"#对齐方式
    print(tplt.format("序号", "价格", "商品名称", "销量",chr(12288)))#加入补齐空格
    for index,g in enumerate(ilt):#带索引遍历
        print(tplt.format(index+1, g[0],g[1],g[2],chr(12288)))

         
def main():
    goods = '书包'
    depth = 3 # 要爬取几页
    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)
            parsePage(infoList, html)
            time.sleep(1)
        except:
            continue
    infoList = sorted(infoList,key=lambda infoList:infoList[2],reverse=True) #对销量进行排序
    printGoodsList(infoList)
     
main()

所得结果: 在idle中执行,对齐会更好看点.

序号    价格                         商品名称                 销量                 
1       59.00           双肩包男士大容量商务出差电脑背包女旅游旅行包高中初中学生书包    400000               
2       59.00           迪士尼书包小学生男童女童儿童三到六年级一二护脊减负轻便超轻     250000               
3       49.00                大容量双肩包男士时尚潮流初中高中小学生书         150000               
4       239.00          CONVERSE匡威官方 经典LOGO双肩背包男女潮流百搭书包100205       150000               
5       59.80           儿童书包小学生男女一二三到六年级韩版减负护脊贵族书包轻便防水    100000               
6       139.00          瑞士军士刀双肩包男士大容量旅行电脑背包高中初中学生书包大学生    100000               
7       39.90           书包韩版原宿ulzzang女背包高中学生初中生百搭ins风男情侣双肩包   100000               
8       69.90           森马双肩包女大容量韩版高中简约背包男大学生书包中学生 初中生     9000                 
9       129.00          KK剑桥树书包小学生男孩一二三到六年级儿童6-12岁男童双肩包减负    8500                 
10      59.00           背包男士双肩包大容量电脑旅行时尚潮流大学生高中生初中学生书包    8000                 
11      129.00          KK树书包小学生女孩6-12岁儿童一二三到六年级女童双肩包护脊减负    7500                 
12      59.00           可爱书包女ins韩版高中学生软妹日系初中生小学生大容量双肩背包     7500                 
13      49.00           双肩包女2020新款韩版牛津布小背包女士百搭时尚大容量帆布书包包    7500                 
14      69.00           复古男士帆布双肩包高中大学生书包潮流休闲大容量旅行包背包男包    6500                 
15      69.00           巴布豆小学生书包男孩1-3-4-6年级双肩护脊减负6-12周岁儿童书包     6000                 
16      85.00           2020新款Nike耐克背包男女高中学生校园书包运动旅游双肩包大容量    6000                 
17      37.90           儿童书包小学生护脊三到六男童轻便幼儿园一年级女童二定制印logo    6000                 
18      129.00          花花公子男士双肩包大学生电脑书包高中初中学生旅行休闲潮流背包    6000                 
19      88.00           迪士尼书包男小学生一二到三五六年级儿童双肩护脊减负轻便背包女    5000                 
20      129.00          书包小学生轻便女三四年级6-12岁潮护脊减负男孩儿童双肩背包一二    5000                 
21      58.00           双肩包女2020新款潮韩版百搭时尚软皮女士背包网红旅行书包女小包    5000                 
22      58.00           双肩包女2020新款潮韩版百搭时尚软皮女士背包网红旅行书包女小包    5000                 
23      58.00           小学生通用书包拉杆架男女孩三轮爬楼梯可折叠背包拖拉杆车架配件    4809                 
24      69.00           新款书包小学生女童一二三到六年级护脊儿童2020女孩韩版轻便减负    4788                 
25      39.00           小学生书包儿童一二三到六年级男孩双肩包男童背包超轻便护脊减负    4691                 
26      195.02          国家地理背包女运动户外时尚双肩包男牛津布旅行防水学生情侣书包    4493                 
27      195.02          国家地理背包女运动户外时尚双肩包男牛津布旅行防水学生情侣书包    4493                 
28      59.90           初中生双肩包女韩版高中学生小学生书包男时尚潮流旅行大容量背包    4487                 
29      49.90           双肩包男背包简约时尚潮流大容量休闲旅行电脑包轻便大学生书包     4455                 
30      199.00          电视剧款JanSport杰斯伯经典双肩包时尚潮女书包男大容量电脑背包    4432                 
31      88.00           迪士尼儿童书包女小学生三到四五六年级女童2020新款轻便护脊减负    4406                 
32      25.99           小学生书包1-3-4-6年级男童女儿童双肩减负超轻背包6-12周岁男孩     4402                 
33      99.90           森马双肩包男新款大容量商务旅行包男士背包时尚潮流女大学生书包    4344                 
34      98.00           迪士尼书包小学生女童一三六年级公主女孩轻便儿童护脊减负双肩包    4058                 
35      78.00           儿童拉杆书包 小学生男孩1-3-5-6年级女生防水减负大容量6-12周岁    3764                 
36      58.00           2020新款双肩包男士旅行休闲书包中学生初中生潮大学生电脑背包男    3742                 
37      58.00           2020新款双肩包男士旅行休闲书包中学生初中生潮大学生电脑背包男    3742                 
38      59.90           森马双肩包男大学生帆布背包学生书包ins休闲旅行小包女潮电脑包     3713                 
39      179.00          kk剑桥树儿童拉杆书包小学生男孩1-6年级拉杆箱书包男童防水爬楼     3571                 
40      59.00           新款书包小学生女童1-3-6年级儿童减负护脊背包女孩公主轻便6-12     3563                 
41      59.00           新款书包小学生女童1-3-6年级儿童减负护脊背包女孩公主轻便6-12     3563                 
42      128.00          KK树书包小学生女孩一二三六年级儿童6-12周岁双肩背包护脊减负韩    3483                 
43      74.99           儿童书包小学生女生一二三到六年级超轻护脊防水减负男孩轻便双肩    3447                 
44      55.00           儿童书包小学生男女一二三到六年级四五防水护脊双肩背包轻便减负    3298                 
45      76.00           书包小学生中学生初中生韩版高中生ins大容量双肩包女潮简约背包     3279                 
46      39.90           书包女中学生初中生韩版原宿ulzzang时尚潮流大学生ins双肩背包男    3262                 
47      68.80           小学生拉杆书包女公主男生可拆卸两用1-3-6年级防水爬楼六轮背包     3217                 
48      59.00           双肩包男士背包休闲大容量电脑旅行包高中初中学生书包女时尚潮流    3147                 
49      109.00          迪士尼小学生书包减负轻便儿童超轻一二三到六年级日本护脊女男童    3093                 
50      39.50           北包包2020新款潮书包韩版帆布百搭男女时尚双肩包森系大学生背包    3084                 
51      79.00           巴布豆小学生书包女童孩一二年级减负护脊超轻679-12岁儿童背书包    3049                 
52      69.00           英伦双肩包男时尚潮流初中大学生书包潮牌旅行男士轻便背包女休闲    3045                 
53      119.00          Skechers斯凯奇书包男大学生女同款大容量双肩背包运动休闲书包      2986                 
54      69.00           2020新款书包男女韩版原宿ulzzang背包学生初高中生中学生双肩包     2983                 
55      59.00           儿童书包男小学生一二三四五六年级护脊减负耐磨背包时尚潮双肩包    2690                 
56      129.00          双肩包女2020新款时尚韩版百搭大容量牛津布简约旅行防盗背包书包    2619                 
57      59.00           木村耀司背包男士双肩包休闲大容量电脑旅行包高中学生大学生书包    2585                 
58      59.00           木村耀司背包男士双肩包休闲大容量电脑旅行包高中学生大学生书包    2585                 
59      499.00          fjallraven瑞典北极狐双肩包kanken书包女电脑旅行背包官方23510     2574                 
60      159.00          ZUNDI儿童书包小学生男一二三到六年级护脊减负女孩双肩背包轻便     2353                 
61      99.00           爱迪生中学生书包男大容量少年双肩包初中生高中生减负防水背包男    2330                 
62      138.00          书包ins风中学生大学生韩版高中初中双肩大容量女生简约电脑背包     2245                 
63      138.00          书包ins风中学生大学生韩版高中初中双肩大容量女生简约电脑背包     2245                 
64      159.00          双肩包男士背包应急雨衣大容量出差旅行17寸笔记本电脑包商务书包    2078                 
65      98.00           穆斯科袋鼠男士背包学生书包潮流休闲大容量电脑包双肩包旅行背包    1980                 
66      119.00          商务电脑背包男士双肩包时尚潮流简约书包休闲出差旅行2020年新款    1936                 
67      79.00           七匹狼背包男电脑双肩包2020年新款大容量高中初中学生书包大学生    1931                 
68      79.00           七匹狼背包男电脑双肩包2020年新款大容量高中初中学生书包大学生    1931                 
69      199.00          (薇娅推荐)JanSport杰斯伯双肩包2020年新款女学生书包INS潮包     1923                 
70      79.00           迪士尼小学生书包男童三到六年级四五超轻便减负护脊男孩儿童大童    1914                 
71      169.00          双肩包男士包包多功能商务17寸电脑包休闲书包大容量出差旅行背包    1838                 
72      59.00           小学生拉杆书包6-12周岁女孩1-3-5-6年级三轮儿童拉杆箱书包防水2    1670                 
73      359.00          MYD双肩包女书包韩版中学生初中生高中大学生ins风肩包电脑背包男    1591                 
74      69.00           书包男生小学生四56六高年级青少年大容量初一男孩初中生双肩包    1580                 
75      88.00           迪士尼幼儿园书包男童蜘蛛侠美国队长小孩学前班宝宝儿童双肩背包    1555                 
76      79.00           七匹狼双肩包男士大容量旅行电脑背包2020年新款初中大学生书包潮    1532                 
77      128.00          拉杆书包小学生儿童一年级三到六女孩防水拉杆背两用男童爬楼男孩    1497                 
78      298.00          Colins Keirs双肩包男商务休闲大容量电脑背包男士旅行包书包潮牌    1420                 
79      69.00           UEK书包小学生男轻便书包1-34-6年级减负护脊超轻儿童书包女二5    1366                 
80      115.64          瑞士军士刀双肩包男大容量休闲商务旅行电脑背包男士初中学生书包    1345                 
81      188.00          瑞士军刀双肩包男休闲大容量书包瑞士军士刀男士电脑商务旅行背包    1113                 
82      228.00          中学生书包男初中生高中生大容量双肩包牛津大学潮流休闲减负背包    1078                 
83      175.00          迪士尼儿童手拉拉杆书包小学生中学生男孩六轮大容量防水拖拉箱女    1065                 
84      249.00          NIKE耐克双肩背包手提包男女包旅行包运动休闲书包豆沙粉包BA6173    1050                 
85      298.00          牛津布双肩包女2020新款韩版百搭时尚学生书包大容量旅行背包小包    1015                 
86      89.00           南极人英伦小学生书包女孩一二三到六年级护脊减负儿童贵族背包轻    963                  
87      220.00          手提双肩包包女2020新款韩版百搭女包时尚大容量书包旅游旅行背包    885                  
88      168.00          杰斯伯JanSport正品校园豹纹男女学生双肩包书包背包国庆客服休息    884                  
89      158.00          电脑双肩包男时尚潮流大容量大学生书包校园旅行简约休闲男士背包    862                  
90      89.00           花花公子男士书包2020年新款休闲旅行双肩包时尚潮流电脑背包潮牌    861                  
91      89.00           花花公子男士书包2020年新款休闲旅行双肩包时尚潮流电脑背包潮牌    861                  
92      258.00          桥志 阿玛尼男士背包双肩包男时尚潮流休闲旅行包真皮大容量书包     834                  
93      249.00          90分牛津帆布包休闲双肩包男时尚潮流背包书包男女韩版百搭电脑包    806                  
94      268.00          背包男双肩包时尚潮流书包男大学生机车健身骑行旅行电脑双肩背包    721                  
95      76.00           凯蒂猫书包幼儿园女童3-6岁可爱女孩学前班大班宝宝儿童双肩背包5    706                  
96      148.00          耐克迷你双肩包幼儿园小学生韩版儿童书包少女背包nike男潮ba5559    686                  
97      235.00          2020新款书包女韩版原宿ulzzang背包高中学生初中生大容量双肩包     680

打包的用法参考:

p=[]
g =['g0','g1','g2']
t = ['t0','t1','t2']
for i in zip(g,t):
p.append(i)
print(p)

[(‘g0’, ‘t0’), (‘g1’, ‘t1’), (‘g2’, ‘t2’)]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值