Scrapy爬虫案例-淘宝比价定向爬虫学习笔记

说明

Scrapy爬虫案例-淘宝比价定向爬虫学习笔记

学习教程:Python网络爬虫与信息提取
授课老师:嵩天
官方网站:https://python123.io
教程链接:https://python123.io/index/courses/804

“淘宝比价定向爬虫”实例

功能描述

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

理解:

  • 淘宝的搜索接口
  • 翻页的处理
  • 技术路线:requests‐bs4‐re

关键词:“蕾丝裙”

https://s.taobao.com/search?q=%E8%95%BE%E4%B8%9D%E8%A3%99&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20170105&ie=utf8&bcoffset=0&ntoffset=6&p4ppushleft=1%2C48&s=1
https://s.taobao.com/search?q=%E8%95%BE%E4%B8%9D%E8%A3%99&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20170105&ie=utf8&bcoffset=0&ntoffset=6&p4ppushleft=1%2C48&s=44
https://s.taobao.com/search?q=%E8%95%BE%E4%B8%9D%E8%A3%99&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20170105&ie=utf8&bcoffset=0&ntoffset=6&p4ppushleft=1%2C48&s=88

每页44个商品

搜索接口和翻页的URL对应属性

定向爬虫的可行性

https://s.taobao.com/robots.txt
User‐agent: *
Disallow: /

请注意:这个例子仅探讨技术实现,请不要不加限制的爬取该网站

程序的结构设计

步骤1:提交商品搜索请求,循环获取页面

步骤2:对于每个页面,提取商品名称和价格信息

步骤3:将信息保存到txt

实例编写

#!/usr/bin/env python
# coding=utf-8
"""
项目描述:获取淘宝搜索页面的信息,提取其中的商品名称和价格
运行环境:win7 64 + python3.7 
三方库:fake_useragent

代码详解:https://yangyang188.coding.me/
文件: TaobaoSpider.py
创建时间:2019/8/11 9:21
创建者:yangyang
博客: yangyang188.coding.me
"""


import requests
import re
from fake_useragent import UserAgent
# 设置随机ua
ua = UserAgent()
headers = {'User-Agent': ua.random,
           'cookie': '***'

           }


def getHTMLText(url):

    try:
        r = requests.get(url, timeout=30, headers=headers)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except BaseException:
        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)):
            # eval去除最外层的""
            price = eval(plt[i].split(':')[1])
            title = eval(tlt[i].split(':')[1])
            ilt.append([price, title])
    except BaseException:
        print("异常")


def printGoodsList(ilt):
    with open('淘宝.txt', 'w', encoding='utf-8') as f:
        tplt = "{:4}\t{:8}\t{:16}\n"
        f.write(tplt.format("序号", "价格", "商品名称"))
        count = 0
        for g in ilt:
            count = count + 1
            f.write(tplt.format(count, g[0], g[1]))

    # 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
    infoList = []
    for i in range(depth):
        try:
            url = start_url + '&s=' + str(44 * i)
            html = getHTMLText(url)
            parsePage(infoList, html)

        except BaseException:
            continue
    printGoodsList(infoList)


if __name__ == '__main__':
    main()


结果

序号  	价格      	商品名称            
   1	99.00   	中长款黑色蕾丝裙鱼尾包臀裙半身裙女秋季
   2	128.00  	裙子女夏季2019新款水溶蕾丝半身裙a字裙鱼尾裙中长款高腰包臀裙
   3	94.00   	凯莉欧原创2019夏季新款绣花网纱拼接蕾丝木耳花边连衣裙女
   4	299.50  	ONLY2019秋季新款chic气质蕾丝修身收腰百褶连衣裙女|119107650
   5	349.50  	ONLY2019秋季新款名媛气质蕾丝中长款连衣裙收腰显瘦女|119207582
   6	199.00  	茵曼旗舰店小清新裙子夏连衣裙女裙2019新款女装蕾丝复古收腰长裙
   7	382.70  	罗衣短袖连衣裙女2019夏装新款优雅蕾丝修身包臀雾蓝色裙子00079
   8	385.70  	罗衣原创蕾丝连衣裙2019春夏新款气质雾蓝色修身淑女中长裙子7108
   9	259.00  	茵曼旗舰店长裙女连衣裙长款2019夏装新款纯棉复古蕾丝很仙的裙子
  10	399.00  	Vero Moda2019春季新款ins风蕾丝七分袖印花连衣裙|31917C549
  11	499.00  	智熏裙法式桔梗裙2019新款夏装新款很仙的蕾丝网纱法国小众连衣裙
  12	188.00  	2019流行裙子新款夏女韩版显瘦遮肚蕾丝连衣裙仙女超仙甜美小黑裙
  13	388.00  	蕾丝连衣裙女2019夏新款法国小众气质显瘦中长款无袖打底背心裙子
  14	185.00  	法国小众很仙的小个子蕾丝连衣裙2019新款夏甜美裙子仙女超仙森系
  15	388.00  	2019夏装新款流行裙子夏很仙的法国小众蕾丝连衣裙女中长款仙女裙
  16	799.00  	Vero Moda2019秋季新款蕾丝面料五分袖V领连衣裙|31936Z513
  17	389.00  	网纱蕾丝裙子2019气质宽松小个子娃娃款刺绣超仙女白色连衣裙
  18	399.00  	ZARA  2019新款 女装 珠宝纽扣饰蕾丝连衣裙04786061251
  19	398.00  	SitiV领智熏法式蕾丝连衣裙七分袖修身小众A字中长气质高端复古夏
  20	339.00  	伊芙丽鱼尾裙女裙子2019秋装新款A字裙中长款蕾丝裙黑色半身裙女
  21	398.00  	秋水伊人法式蕾丝连衣裙2019新款夏装女eggsshop丧系裙子森系超仙
  22	757.00  	JUZUI/玖姿官方旗舰店2019夏季新款气质蕾丝拼接时尚中长连衣裙女
  23	1893.00 	sandro2019春夏新款女装蕾丝镂空凸花中长连衣裙R20656E
  24	1430.00 	sandro2019春夏新款女装浪漫蕾丝连衣裙R20680E
  25	148.00  	纯棉连衣裙女流行夏装2019新款妈妈纯棉蕾丝短袖休闲气质显瘦裙子
  26	782.00  	JUZUI/玖姿官方旗舰店女装2019夏季新款短袖蕾丝印花中长连衣裙女
  27	988.00  	DAZZLE地素 2019夏装新款纯色镂空装饰水溶蕾丝半身裙女2G2S2347B
  28	169.00  	黑色半身裙女2019夏新款a字裙子中长款高腰网纱百褶学生蛋糕裙秋
  29	1399.00 	商场同款DOUBLOVE贝爱2019春夏新款蕾丝连衣裙星星刺绣通透雅致
  30	1098.00 	真丝连衣裙2019新款夏季女桑蚕丝高端时尚奢华大牌蕾丝白色裙子
  31	1086.00 	SNIDEL2019春夏新品 甜美蕾丝钩花镂空鱼尾包中长半裙SWFS191137
  32	169.00  	蕾丝连衣裙性感一字肩仙女超仙甜美沙滩裙子2019流行夏天海边度假
  33	1128.00 	朗姿 裙子女2019夏装新款A字裙高腰修身V领条纹短袖蕾丝连衣裙女
  34	428.00  	三彩2019夏季新款蕾丝雪纺连衣裙短袖假两件仙女流行蛋糕长裙子女
  35	1518.00 	DAZZLE地素 秋装新款性感花纹收绳斜襟蕾丝连衣裙女2F3O4067T
  36	1428.00 	YINER音儿女装2019夏季新款薄款蕾丝花边拼接喇叭袖收腰连衣裙
  37	218.00  	阔太太连衣裙两件套2019新款夏季蕾丝披肩中长款显瘦气质过膝裙子
  38	339.90  	阿卡雪纺连衣裙女2019夏新款蕾丝流行裙子收腰显瘦超仙甜美仙女裙
  39	685.00  	【商场同款】太平鸟女装2019夏装新黑色蕾丝收腰连衣裙 A5FA92350
  40	79.00   	白色蕾丝半身裙女夏一步裙新款高腰显瘦中长款包臀a字半身长裙子
  41	830.00  	SNIDEL2019春夏新品复古宫廷风荷叶边蕾丝全棉连衣裙SWFO191038
  42	499.00  	Five Plus2019新款女夏装蕾丝连衣裙短袖V领荷叶边长裙子高腰镂空
  43	764.00  	ochirly 欧时力2019新款夏装带蕾丝连衣裙女1ZH2084160
  44	1590.00 	dzzit地素 2019秋专柜新款淑女千层蕾丝绣花连衣裙女3G3O506
  45	1345.00 	Miss Sixty2019新款秋季设计感荷叶边修身蕾丝很仙的连衣裙女
  46	708.00  	YINER音儿女装2019夏季新款纯色时尚蕾丝花边拼接包臀鱼尾半身裙
  47	199.00  	诗凡黎很仙的纱裙女蕾丝2019新款中长款高腰雪纺a字裙女半身裙
  48	1396.00 	影儿诗篇女装2019秋季新款撞色丝绒织带钉珠蕾丝网纱连衣裙
  49	389.00  	网纱蕾丝裙子2019气质宽松小个子娃娃款刺绣超仙女白色连衣裙
  50	528.00  	2019夏季新款女装大牌欧美时尚黑色蕾丝裙子长款真丝桑蚕丝连衣裙
  51	299.00  	ONLY2019秋季新款领口系带气质名媛蕾丝修身连衣裙女|119161530
  52	399.00  	IVENI/依维妮2019新款洋气蕾丝网纱长款过膝堆堆蛋糕裙连衣裙女潮
  53	399.50  	ONLY2019秋季新款气质一字肩蕾丝百褶收腰连衣裙女|119161511
  54	1968.00 	影儿YINER音儿女装2019秋季新款蕾丝拼接两件套连衣裙8C69305636
  55	499.50  	Vero Moda2019夏季新款宴会礼服丝滑里衬收腰蕾丝连衣裙31927B568
  56	299.50  	ONLY2019秋季新款桔梗领口气质蕾丝套装雪纺连衣裙女|119107609
  57	559.00  	Five Plus2019新款女夏装蕾丝连衣裙女高腰蝴蝶结短裙子荷叶花边
  58	1728.00 	YINER音儿女装2019秋新款优雅蕾丝花边拼接花朵装饰旗袍连衣裙
  59	499.00  	智熏裙法式桔梗裙2019新款夏装新款很仙的蕾丝网纱法国小众连衣裙
  60	299.50  	ONLY2019秋季新款chic气质蕾丝修身收腰百褶连衣裙女|119107650
  61	1277.00 	JUZUI/玖姿官方旗舰店2019夏季新款蕾丝拼接收腰显瘦中长连衣裙女
  62	259.00  	ZARA 新款 女装 凸纹蕾丝短连衣裙 04387223800
  63	299.00  	ZARA新款 女装 凸纹蕾丝装饰小打褶连衣裙 05598226942
  64	299.90  	蕾丝拼接连衣裙女夏装2019新款很仙的法国小众裙子女复古雪纺裙
  65	668.00  	DAZZLE 地素 夏装新款 蕾丝镂空刺绣花高腰吊带连衣裙薄 2A2O331
  66	148.00  	纯棉连衣裙女流行夏装2019新款妈妈纯棉蕾丝短袖休闲气质显瘦裙子
  67	179.90  	乐町浪漫中长款裙子2019夏季新款蕾丝显瘦ins超火的半身a字纱裙女
  68	2153.00 	sandro2019春夏新款女装 撞色蕾丝领连衣裙 R20499E
  69	558.00  	欧洲站明星同款女装2019新款时尚气质小香风修身白色蕾丝连衣裙夏
  70	268.00  	潘南奎 隐秘型性感 设计感蕾丝不规则连衣裙女无袖收腰气质小黑裙
  71	649.00  	ONLY2019秋季新款仙女蕾丝网纱收腰连衣裙女|119307528
  72	1430.00 	sandro2019春夏新款女装浪漫蕾丝连衣裙R20680E
  73	1368.00 	YINER音儿女装2019夏季新款圆点娃娃领镂空蕾丝收腰连衣裙
  74	188.00  	2019流行裙子新款夏女韩版显瘦遮肚蕾丝连衣裙仙女超仙甜美小黑裙
  75	149.00  	欧洲站2019夏装新款宽松显瘦时尚蕾丝拼接连衣裙女胖mm鱼尾裙子潮
  76	298.00  	初恋女长裙微胖显瘦2019夏装喇叭袖蕾丝拼接印花雪纺大码mm连衣裙
  77	79.00   	白色蕾丝半身裙女夏一步裙新款高腰显瘦中长款包臀a字半身长裙子
  78	1488.00 	YINER音儿女装2019秋季新款衬衫领纽扣拼接钩花镂空蕾丝连衣裙
  79	649.00  	ONLY2019秋季新款仙女透视蕾丝松紧收腰网纱连衣裙女|119207578
  80	218.00  	两件套连衣裙女夏季2019新款流行气质中长款蕾丝披肩雪纺套装裙子
  81	849.00  	Vero Moda2019春季新款蕾丝拼接面料圆领连衣裙|31917B504
  82	1098.00 	珂莱蒂尔蕾丝连衣裙2019秋季新款超仙甜美法式高腰显瘦短袖裙子女
  83	148.00  	于momo民国大小姐复古风连衣裙斜门襟超仙气质收腰旗袍蕾丝裙
  84	1893.00 	sandro2019春夏新款女装蕾丝镂空凸花中长连衣裙R20656E
  85	1548.00 	YINER音儿女装2019夏季新款中国风钩花蕾丝拼接旗袍领收腰连衣裙
  86	1718.00 	珂莱蒂尔蕾丝旗袍连衣裙2019秋季新款气质时尚刺绣花收腰显瘦裙子
  87	168.00  	蕾丝连衣裙2019新款夏韩版显瘦小黑裙长裙气质收腰网纱流行裙子女
  88	615.12  	SELECTED思莱德秋季新品撞色蕾丝拼接女士修身连衣裙S|41932J516
  89	349.00  	ONLY2019秋季新款桔梗喇叭袖蕾丝雪纺连衣裙中长款女|119107681
  90	259.90  	乐町蕾丝拼接连衣裙2019夏装新款超仙甜美很仙的法国小众雪纺裙子
  91	688.00  	19妻子的浪漫旅行明星章子怡baby杨颖同款蕾丝镂空度假长款连衣裙
  92	799.00  	宋慧乔明星同款2019新款夏收腰显瘦气质裙子女流行白色蕾丝连衣裙

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页