VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > python爬虫 >
  • python网络爬虫-淘宝商品比价定向爬虫

功能描述

目标:获取淘宝搜索页面的信息,提取其中商品名称和价格
理解:淘宝的搜索接口

遇到的困难

正则表达式的书写
直接爬取cookie值过期,输出结果为空,所以需要header

解决:在所需爬取页面中,按F12, 点击network,刷新页面, 点击出现的search?q=,向下翻可以看见cookie与user-agent
cookie值的查找
页面间距值的查找
页面间距值的查找

代码部分

# =============================================
# --*-- coding: utf-8 --*--
# @Time    : 2021-02-14
# @Author  : Oraer
# @CSDN    : https://blog.csdn.net/Oraer
# @FileName: 淘宝商品比价定向爬虫.py
# @Software: PyCharm
# =============================================
import re
import requests

def getHTMLText(url, header):
    try:
        r = requests.get(url, headers=header, timeout=30)
        r.raise_for_status()
        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)        # 商品名称
        for i in range(len(plt)):
            price = eval(plt[i].split(':')[1])                   # 将价格从字符串中分开
            title = eval(tlt[i].split(':')[1])                   # eval()
            ilt.append([price, title])                           # 将每一对价格和商品名称 添加进列表ilt
    except:
        print("...")


def printGoodsList(ilt):
    tplt = "{:4}\t{:8}\t{:16}"                    # 表头
    print(tplt.format("序号", "价格", "商品名称"))
    count = 0
    for g in ilt:
        count = count + 1
        print(tplt.format(count, g[0], g[1]))


def main():
    goods = '华为'        # 爬取商品
    depth = 2            # 爬取深度
    start_url = 'https://s.taobao.com/search?q=' + goods
    header = {
        "Cookie": 'thw=cn; cna=l4qWGUADnlsCAdpNONov0COS; sgcookie=E100amQ%2FAqzHrAWNxy6h4p2Pjb8E4ps5AMe5dY7LTxvY5u78KCAW52HbJyHBByU7qNOtGW%2BIgHtGXv6vpAL71HifU1yFtej6bQezPELhj7XDCOU%3D; tracknick=tb956885452; _cc_=UtASsssmfA%3D%3D; enc=IgiMy3EBqFA9uaISLYfat5cWOuCoWLTHbC8TLE9Rn5v5Ev%2Bgjsi10obFxjMaKoCYmDwApXjgWF4ni9XWrwe%2FNXGKL69AShbXmuWlLvXFM80%3D; hng=CN%7Czh-CN%7CCNY%7C156; miid=3845148332138405182; _m_h5_tk=8f22d821383d7a5ea68960d13c500f93_1644847346926; _m_h5_tk_enc=497b6b19efc8a329b36db37d929954ca; xlly_s=1; alitrackid=www.taobao.com; lastalitrackid=www.taobao.com; cookie2=1f09b4a01bff2126f0a64239b78b39ba; t=c81afa8b8c905660e9138e49e7735d8b; _tb_token_=faae5d4ef43f4; JSESSIONID=90DC4AD7D51644F3EEAC9AB890CC322F; tfstk=ceJdBQbK7V0nOOs90BhMNv9s3LJdZIZdrk_8ecovmfY7JayRi8vDHrKoOg7VJcC..; l=eBMZ8HgggLfBS9DBBOfZlurza77O9IRbouPzaNbMiOCPOz5e5pnNW6caISYwCnGVHsK2R3uqBzNwBf8GlyCq0-Y3L3k_J_VsndC..; isg=BGBg3Ct1FqnH86moFMsBh4k3MW4yaUQzqWf6HtpxEXsO1QH_gnphw2GnaX3V4_wL',
        "User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763'
        }  # 发送Headers的请求 且 需要cookie信息
    infoList = []        # 商品名称和价格
    for i in range(depth):
        try:
            url = start_url + '&s=' + str(44*i)  # 对爬取页面连接 每页间距44
            html = getHTMLText(url, header)      # 获取页面文本信息
            parsePage(infoList, html)            # 把商品名称 价格 提取到infoList
        except:
             continue
    printGoodsList(infoList)                     # 打印爬取结果


if __name__ == '__main__':
    main()

运行结果

序号  	价格      	商品名称            
   1	6699.00 	华为MateBook14s 512G锐炬显卡14.2英寸触控屏智慧性能轻薄本
   2	17799.00	华为折叠屏手机 Mate X2 折叠手机 华为x2 华为5G手机
   3	888.00  	Huawei/华为 畅享20 Pro官方正品旗舰手机
   4	2379.00 	顺丰当天发+可减400 HONOR/荣耀60 5G手机官方旗舰店官网全网通新款正品智能曲面50pro非华为手机荣耀60pro
   5	2799.00 	24期免息 送碎屏宝 Huawei/华为nova 9手机 华为手机 华为nova9 华为nova9手机 华为nova9pro 华为官方旗舰店
   6	4499.00 	华为HUAWEI MatePad Pro 12.6英寸鸿蒙HarmonyOS系统OLED屏幕平板电脑学习8GB12GB内存
   7	11588.00	当天发【赠碎屏保24期免息】华为/HUAWEI Mate 40 RS 5G手机官方旗舰店正品保时捷版新品Pro官网典藏版
   8	19088.00	24期免息【当天发】HUAWEI/华为 Mate X2 5G手机官方正品官网新款旗舰店mate30e折叠屏matex2典藏版PU素皮
   9	2099.00 	HUAWEI/华为nova 8 SE华为手机大屏4G全网通6400万高清四摄66W超级快充OLED华为官方旗舰店
  10	5188.00 	24期免息花呗分期付款0首付 HUAWEI/华为Mate 40E 5G智能手机官方旗舰店正品麒麟旗舰芯片曲面屏新款mate40e
  11	2099.00 	送碎屏宝【优惠200元】Huawei/华为Nova8 SE 官方旗舰店官网正品新款全网通手机直降66W快充学生游戏大屏华为
  12	1299.00 	vivo WATCH 2新品独立通讯超长续航智能运动蓝牙健康手表官方旗舰正品防水兼容华为
  13	2699.00 	可减150元 花呗24期分期免息 HONOR/荣耀60 Pro 手机5G官方旗舰店官网新款正品龚俊同款50pro非华为荣耀60pro
  14	10088.00	当天发【24期免息/可减1200】HUAWEI/华为P50 Pocket宝盒折叠手机官方旗舰店正品p50pro鸿蒙新款折叠屏定制版
  15	1379.00 	可减160元+顺丰当天发 honor/荣耀X30i 5G手机荣耀官方旗舰店官网新品上市正品荣耀x20智能非华为新荣耀x30i
  16	2799.00 	当天发【24期免息送碎屏宝】Huawei/华为nova 9手机官方旗舰店正品nova9pro曲面屏7鸿蒙官网新款p50系统nova8
  17	2099.00 	Huawei/华为nova 8 SE4G手机全网通正品学生拍照游戏手机nova8se
  18	2499.00 	Huawei/华为MatePad 11平板电脑10.95英寸matepad鸿蒙办公学习
  19	1488.00 	Huawei/华为手表WATCH GT3/GT典藏版运动智能gt3血氧监测蓝牙通话
  20	6188.00 	Huawei/华为P50手机4G全网通官方旗舰店正品搭载鸿蒙p50智能手机
  21	3499.00 	Huawei/华为nova9pro 4G手机骁龙鸿蒙HarmonyOS新品智能Nova9Pro
  22	2999.00 	【移动用户专享】HONOR/荣耀60 5G手机官方旗舰店官网全网通新款正品智能曲面50pro非华为手机荣耀60pro
  23	6199.0024期免息  领劵88劵省100元】Huawei/华为 Mate 40 pro 5G手机正品mate40pro新品mate40pro手机直降mate40
  24	2599.0024期免息下单减150 】华为平板MatePad11平板电脑二合一10.95英寸2021新款pad全网通话pro学生平板游戏办公
  25	4649.00 	【M40pro+黑闪送】Huawei/华为 Mate 40 Pro+ MATE40 pro mate40
  26	3799.00 	【咨询减600】华为MatePadPro平板电脑10.8英寸2021新款pad二合一办公学生ipad pro官方旗舰店正品matepad11
  27	3799.00 	【咨询减600】华为平板MatePadPro 10.82021新款pad平板电脑二合一Pro学生办公iPad官方旗舰正品matepad11
  28	2899.00 	华为Matebook14/13 i7轻薄荣耀锐龙触屏i5学生游戏新款笔记本电脑
  29	2780.00 	华为HUAWEI Huawei Mate30Pro 5G官方正品旗舰手机mate30原厂封装
  30	3288.00 	分期免息Huawei/华为 p40 pro 5G新款官方旗舰豪礼 P40pro+手机
  31	5999.00 	新品Huawei/华为 P50 Pro手机官方旗舰店官网正品华为P50鸿蒙系统
  32	2889.00 	华为Matebook13/14s新品i5/7锐龙版学生办公超薄全面屏笔记本电脑
  33	2599.00 	【咨询领大额优惠!】华为手表Watch 3 pro智能eSIM独立通话心率血糖血氧检测男女运动手环官方旗舰正品鸿蒙
  34	1899.00 	当天发货【24期分期】HONOR/荣耀50 手机系列v50新款5G十直降pro正品SE曲屏40华为手机官方旗舰店官网全网通
  35	228.002022新款】华强北s7手表可接打电话DT7MAX智能PD7MAX+蓝牙测心率血压运动商务DT7proMAX NFC适用苹果华为
  36	2599.00 	华为手表Watch 3 pro智能esim独立通电话男女蓝牙运动手环心率血氧检测官方旗舰正品现货鸿蒙[966]
  37	1988.00 	HUAWEI Huawei Mate 30 Pro 5G麒麟990 曲面屏E 徕卡40相机5G手机
  38	6499.00 	Huawei/华为MateBook 14十一代I5学生轻薄办公商务笔记本202139	5258.00 	新品Huawei/华为 Mate 40 5G手机 mate40PRO+ 保时捷设计mate40e
  40	1299.00 	【顺丰当天发+送荣耀耳机】HONOR/荣耀X20 5G手机华为手机官方旗舰店官网x20se老人学生千元智能手机畅玩20se
  41	2628.00 	HUAWEI Mate30 mate30pro 5G全网通直屏曲屏防水华为官方正品手机
  42	898.00  	【顺丰当天发+送碎屏保】HUAWEI/华为畅享20 SE手机官方旗舰正品店官网畅享20se直降新款华为学生游戏手机
  43	1528.00 	Huawei/华为 nova 7 5G全网通麒麟985官方正品曲面屏nova7pro手机
  44	917.00  	honor 荣耀 荣耀9x 原装正品升降摄像头4G智能学生华为手机包邮
  45	699.00  	华为HUAWEI 畅享9 PLUS畅想9S正品10s老人智能手机官方旗舰店官网
  46	3199.00 	现货速发Huawei/华为 p40 pro 5G手机P40官方旗舰全面屏P40新款
  47	1899.00 	官网honor/荣耀 荣耀60 Pro手机5G官方旗舰店华为荣耀60骁龙778G+
  48	2504.00 	【咨询更优惠】华为平板MatePad11新款平板电脑10.95英寸HUAWEI鸿蒙学习办公绘画2网课Pro学生全面屏ipad官方
  49	2504.00 	【咨询更优惠】华为平板MatePad11新款平板电脑10.95英寸HUAWEI鸿蒙学习办公绘画2网课Pro学生全面屏ipad官方
  50	2599.00 	新款Huawei/华为 NOVA 9手机官方旗舰店官网正品鸿蒙Hi Nova9Pro
  51	13088.00	新品华为Mate X2典藏折叠屏Huawei/华为 Mate X2代5G麒麟9000旗舰
  52	8999.00 	新品Huawei/华为 P50 pocket折叠屏麒麟9000 华为p50宝盒折叠手机
  53	1388.00 	【太空人表盘!】华为手表Watch GT2运动智能电话手表3pro蓝牙通话液晶商务男女手环血氧官方正品旗舰现货46mm
  54	3199.00 	Huawei/华为 p40 pro 鸿蒙系统官方旗舰手机5G全网通华为p40新款
  55	2383.00 	现货 Huawei/华为 nova 9官方正品旗舰店新品nova9 Pro骁龙手机
  56	1999.00 	【送礼】华为平板MatePad10.4英寸平板电脑2021鸿蒙二合一学生学习专用11官方旗舰10新款全网通pro全面屏ipad
  57	1899.00 	【现货速发】华为平板MatePad平板电脑10.4英寸2021新款鸿蒙OS教育ipad11二合一手机全网通话学生Pro官方旗舰
  58	5988.00 	24期免息【送碎屏险当天发货】Huawei/华为P50Pro手机全网通 华为p50宝盒 华为p50 pro 华为官方旗舰店官网
  59	7738.00 	【现货发】Huawei/华为Mate 40 Pro 5G手机官方旗舰店mate40pro官网P50正品40e 华为mate40
  60	5499.00 	华为/HUAWEI MateBook 13  11代酷睿8GB/16GB+512GB锐炬显卡笔记本电脑2K触控护眼轻薄办公全面屏wifi 6
  61	6499.00 	华为笔记本电脑HUAWEI MateBook 13s 第11代intel酷睿处理器 16GB+512GB锐炬显卡13.4英寸2.5K性能轻薄本
  62	2699.00 	顺丰速发送碎屏宝新品上市Huawei/华为nova 9手机官方旗舰店官网正品新款nova9pro系列直降120Hz鸿蒙nova8
  63	2699.00 	当天发【24期免息】Huawei/华为nova 9手机新款官方nova8pro旗舰店nova8se系列5G鸿蒙p官网直降40正品
  64	2799.00 	顺丰速发5G新品送碎屏宝Huawei/华为nova 8 Pro手机官方旗舰店正品曲面屏新款nove8直降9官网nova8系列pro
  65	2469.00 	【可减350元+花呗24期分期】HONOR/荣耀60 5G手机官方旗舰店官网正品新款荣耀50系列曲面屏非华为荣耀60pro
  66	6688.00 	当天发可减720元[24期免息]Huawei/华为 P50 Pro手机官方旗舰官网p40pro新款5g直降典藏版宝盒pocket正品
  67	1319.00 	可减70元+顺丰当天发 HONOR/荣耀X30 5G手机官方旗舰店官网正品新款x30i智能学生非华为荣耀x30手机max 30i
  68	1488.00 	当天发【24期分期送礼】华为手表Watch GT3智能电话手表通心率血氧监测男女运动蓝牙手环2p官方旗舰正品46mm
  69	5088.00 	当天发【24期免息可减750】Huawei/华为Mate 40 pro 5G手机官方旗舰店正品mate50鸿蒙40e官网直降p50 60 M40
  70	6099.00 	HUAWEI/华为Mate 40 Pro 4G手机智能系统mate40pro 4g曲面屏鸿蒙
  71	2599.00 	华为手表Watch3/Pro智能esim独立通话电话运动男女蓝牙watch3/pro
  72	999.00  	Huawei/华为畅享20E手机4G全网通新品20e官方4g正品老人学生畅想
  73	10988.00	Huawei/华为P50 Pocket新款宝盒折叠屏手机鸿蒙系统官方自营店p50
  74	2988.00 	华为血压手表WATCH D运动智能腕部心电记录仪旗舰手环官方watch d
  75	6399.00 	官方正品Huawei/华为Mate40 pro+全网通5G手机mate40秋日夏日胡杨
  76	3738.00 	官方原装Huawei/华为P40旗舰5GP40pro麒麟990全网通手机正品现货
  77	2499.00 	华为MatePad 11平板电脑10.95英寸2021新款HarmonyOS鸿蒙120Hz高刷新率pad学习办公游戏二合一官方旗舰店ipad
  78	1569.00 	华为HUAWEI HUAWEI P30 PRO手机曲面屏P30官方正品鸿蒙手机P40
  79	1388.00 	Huawei/华为 Mate 20 Pro官方原装正品智能手机华为手机Mate20
  80	2699.00 	华为笔记本电脑Matebook13/D14轻薄便捷学生手提办公2022新款荣耀
  81	9299.00 	现货顺丰包邮Huawei/华为 P50 Pocket折叠屏手机P50宝盒P50pocket
  82	369.00  	【官方正品】华为手机通用学生电话手表初高中生专用男女孩插卡4G全网通视频通话儿童智能手表防水定位多功能
  83	12688.00	mate X2典藏版Huawei/华为 Mate X2麒麟9000官方旗舰5G二代折叠屏
  84	2988.00 	华为手表 WATCHD华为腕部心电血压记录仪华为watch d华为手表智能
  85	2318.00 	Huawei/华为 华为MatePad11平板电脑鸿蒙系统2021款学生学习专用
  86	5509.00 	【正常发货】Huawei/华为 MateBook E 2022款 笔记本电脑平板21
  87	4448.00 	现货Huawei/华为 P50 Pro手机官方正品P50Pocket折叠屏4G麒麟9000
  88	1278.00 	现货 honor/荣耀 荣耀X30 5G手机荣耀官方旗舰店正品智能华为X30i
  89	2099.00 	分期免息/送豪华礼! Huawei/Nova8Pro 8+256G 6.72曲面屏快充5g为手机官方正品旗舰手机店官网正品50pro 9
  90	1299.00 	当天发!送豪华礼 Huawei/华为畅享20Pro 8+128G 6.5英寸4800W像素 5g华为手机官方旗舰手机店官网正品优畅享
  91	1899.00 	【咨询送礼】华为平板MatePad平板电脑10.4英寸2021新款鸿蒙教育11学习全面屏全网通Huawei手机ipad二合一Pro
  92	855.00  	顺丰速发+送碎屏险 HONOR/荣耀畅玩20 手机官网旗舰店畅享20新款学生老人千元机荣耀20Pro智能非华为手机

进程已结束,退出代码为 0

 
出处:https://www.cnblogs.com/Oraer/p/15894257.html


相关教程