爬虫基础(6)

  • 目录
  1. 网页分析
  2. 编程
  3. 3
  4. 附注:Mooc-python网络爬虫与信息提取
  • 网页分析
  1. 搜索接口
    通过淘宝搜索看到如下链接,然后提取搜索接口url:https://s.taobao.com/search?q= + '目标词'
https://s.taobao.com/search?q=书包&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20190607&ie=utf8
  1. 翻页链接分析
    观察链接发现区别:&s=44&s=88&132;数页面商口数正好为44个。分页提取链接为:https://s.taobao.com/search?q='目标词'&s=44*页数
# 第2页
https://s.taobao.com/search?q=%E4%B9%A6%E5%8C%85&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20190607&ie=utf8&bcoffset=3&ntoffset=3&p4ppushleft=1%2C48&s=44
# 第3页
https://s.taobao.com/search?q=%E4%B9%A6%E5%8C%85&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20190607&ie=utf8&bcoffset=0&ntoffset=6&p4ppushleft=1%2C48&s=88
# 第4页
https://s.taobao.com/search?q=%E4%B9%A6%E5%8C%85&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20190607&ie=utf8&bcoffset=-3&ntoffset=-3&p4ppushleft=1%2C48&s=132
  1. 商品页分析
    • 打开查看网页源码,检索对应商品信息所在位置,观察源码规律
    • 商品1
      在这里插入图片描述
      在这里插入图片描述
    • 商品2
      在这里插入图片描述
      在这里插入图片描述
  • 编程
  1. 可行性分析:https://s.taobao.com/robots.txt
    • 禁止爬取所有信息,不要不加限制的爬取
    • 注:现在已经限制只能登陆后访问
  2. 结构设计
    • 提交商品搜索请求,循环获取页面
    • 提取各页面中的商口名称、价格信息
    • 输出
  3. 编程
# -*- coding: utf-8 -*-

import requests, re


class spider(object):

    def __init__(self, goods):
        if isinstance(goods, str):
            self.__kv = {'user-agent':'Mozilla/5.0'}
            self.url_search = 'https://s.taobao.com/Search?q=' + goods
            self.depth = 2
            self.infoList = []
        else:
            raise '初始化失败:请输入字符串'

    def getHtmlText(self, url):
        try:
            req = requests.get(url, headers=self.__kv)
            req.raise_for_status()
            return req.text
        except Exception as e:
            return 'get异常:{}'.format(e)

    def parserHtml(self, html):
        try:
            tlt = re.findall(r'\"raw_title\"\:\".*?\"', html)  # 提取商品名,返回列表
            plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"', html)  # 提取价格
            for i in range(len(plt)):
                title = eval(tlt[i].split(':')[1])
                price = eval(plt[i].split(':')[1])
                self.infoList.append([title, price])
        except Exception as e:
            print('parser异常:{}'.format(e))

    def printGoods(self):
        fmt = '{0:^5}\t{1:{3}^30}\t{2:^10}'
        count = 0
        print(fmt.format('序号', '商品名称', '价格', chr(12288)))
        for i in self.infoList:
            count += 1
            print(fmt.format(count, i[0], i[1], chr(12288)))

def main(goods):
    sp = spider(goods)
    for i in range(sp.depth):  # 翻页
        try:
            url = sp.url_search + '&s=' + str(44*i)
            html = sp.getHtmlText(url)
            sp.parserHtml(html)
        except:
            continue
    sp.printGoods()

if __name__ == '__main__':
    
    main('书包')

 序号  	             商品名称             	    价格    
  1  	   小学生书包男生1-3-4-6年级6-12周岁儿童   	  45.80   
  2  	kk树书包小学生女孩6-12周岁儿童1-3-6年级女童双肩背包护脊减负	  119.00  
  3  	Adidas阿迪达斯男包女包大容量学生书包运动包旅行背包双肩包潮包	  129.00  
  4  	BOPAI博牌双肩包男商务休闲简约大容量背包时尚书包15.6寸电脑包	  299.00  
  5  	七匹狼双肩包男 新款商务男士旅行背包女休闲大容量电脑学生书包	  109.00  
  6  	Fjallraven/北极狐双肩包kanken mini 迷你情侣书包背包女23561	  299.00  
  7  	uniker初中小学生拉杆书包男孩大轮子6-12周岁儿童大容量旅行包女	  398.00  
  8  	七匹狼商务双肩包男书包中学生女电脑包旅行包休闲男士背包大容量	  109.00  
  9  	双肩包男士时尚潮流背包男大容量电脑包书包大学生运动休闲旅行包	  139.00  
 10  	瑞士军刀瑞戈双肩背包男瑞士学生书包女大容量商务休闲电脑旅行包	  149.00  
 11  	男士双肩包2019新款时尚潮流大学生书包旅行轻便电脑背包休闲简约	  125.00  
 12  	Fjallraven/北极狐双肩包kanken书包女户外旅行背包官方旗舰23510	  399.00  
 13  	瑞戈瑞戈瑞士军刀旅行包双肩包瑞士中学生书包女大容量电脑背包男	  309.00  
 14  	瑞士军刀双肩包男 背包休闲商务旅行大容量瑞士书包电脑男士户外	  118.00  
 15  	男士背包电脑旅游休闲韩版时尚潮流高中学生书包大容量旅行双肩包	  58.00   
 16  	巴朗商务双肩包休闲时尚潮流大学生书包15.6寸电脑包男士背包男潮	  119.00  
 17  	商务背包男士双肩包韩版潮流旅行包休闲女学生书包简约时尚电脑包	  53.80   
 18  	电脑双肩包男时尚潮流学生书包运动旅行轻便休闲简约商务男士背包	  138.00  
 19  	tigerfamily儿童书包小学生一年级1-3 女男6岁耐磨减负护脊双肩包	  378.00  
 20  	双肩包男书包男士时尚潮流青年休闲简约潮牌旅行背包大学生电脑包	  158.00  
 21  	lovepea 天使之翼SEIBAN 日本本土手工款小学生书包红色礼物	 1298.00  
 22  	男士双肩包简约时尚潮流休闲大学生书包电脑韩潮牌大容量旅行背包	  118.00  
 23  	2019新款时尚旅行双肩包女背包牛津布帆布百搭防盗女式大容量书包	  129.00  
 24  	休闲背包男双肩包时尚潮流青年男士旅行大学生书包大容量电脑包潮	  95.00   
 25  	Beckmann小学生书包女男儿童护脊减压书包背包22L挪威进口1-3年级	  799.00  
 26  	背包男双肩包男电脑包17寸大容量商务出差多功能旅行包潮流书包男	  169.00  
 27  	小学生书包男1-3-4-6年级女孩6-12岁儿童双肩包轻便减负护脊背包	  158.00  
 28  	kk树书包小学生男孩1-3-4-5年级儿童背包女孩6-12周岁双肩包护脊	  119.00  
 29  	七匹狼背包男商务双肩包男士旅行休闲时尚潮流电脑青年书包大容量	  139.00  
 30  	花花公子男士双肩包时尚潮流休闲电脑旅行书包潮牌大学生帆布背包	  129.00  
 31  	LIVEBOX 双肩包男士背包时尚潮流韩版书包休闲青年大学生简约旅行	  128.60  
 32  	uek小学生书包男孩女生1-3-6年级护脊双肩背包6-12岁轻便儿童书包	  139.00  
 33  	瑞士军刀双肩包男瑞士女学生书包大容量旅行包休闲商务电脑背包潮	  149.00  
 34  	牛津布双肩包女2019新款潮韩版时尚百搭书包旅行帆布小背包女包包	  59.00   
 35  	双肩包女士2019新款小韩版百搭时尚书包2019旅行防盗牛津帆布背包	  69.00   
 36  	FA儿童拉杆书包小学生女孩6-12周岁女童1-3-5-6年级防水爬楼拖拉	  168.00  
 37  	稻草人背包男双肩包女时尚潮流学生书包韩版简约休闲大容量旅行包	  89.00   
 38  	Viney双肩包女2019新款潮时尚真皮女包书包女休闲大容量软皮背包	  259.00  
 39  	双肩包男时尚潮流韩版简约背包轻便休闲旅行电脑高中大学生书包男	  79.00   
 40  	出差背包男包真皮男生双肩包男士电脑包商务旅行包书包男时尚潮流	  349.00  
 41  	七匹狼商务双肩包男士背包女韩版中学生书包休闲男包旅行包电脑包	  129.00  
 42  	儿童书包小学生男童1-3年级6-12周岁4-6年级男孩双肩背包轻便减负	  45.80   
 43  	背包男真皮双肩包男士大容量时尚旅行包韩版青年书包牛皮电脑背包	  659.00  
 44  	卡拉羊双肩包男书包中学生时尚潮流女初中生高中生大容量韩版背包	  159.00  
 45  	巴布豆旗舰店书包1-3年级护脊减负儿童书包男4-6小学生书包轻便	  69.00   
 46  	pinkland儿童书包男小学生1-3-4-6年级女孩6-12周岁背包护脊书包	  139.00  
 47  	鳄鱼男士双肩包大容量商务休闲电脑背包旅行简约学生时尚潮流书包	  126.00  
 48  	瑞士军刀双肩包瑞士大容量初中生书包男中学生运动旅游旅行背包女	  159.00  
 49  	鳄鱼男士双肩包大容量商务休闲电脑背包旅行简约学生时尚潮流书包	  126.00  
 50  	瑞士军刀双肩包瑞士大容量初中生书包男中学生运动旅游旅行背包女	  159.00  
 51  	CK双肩包男时尚潮流背包大学生书包休闲简约牛津布旅行包新品 	  298.00  
 52  	书包小学生男童1-3-4-6年级牛津大学儿童6-12周岁一减负护脊女孩5	  188.00  
 53  	双肩包男士背包大容量旅行包电脑休闲女时尚潮流高中初中学生书包	  59.00   
 54  	天使之翼SEIBAN 日本小学生防水书包护脊减负深蓝色书包儿童礼物	 2998.00  
 55  	小米 米兔儿童书包 6-12岁男女小学生潮双肩背包幼儿园大容量背包	  189.00  
 56  	牛津布双肩包女2019新款韩版时尚旅行背包百搭防盗帆布大学生书包	  148.00  
 57  	电视剧款JanSport旗舰店官网杰斯伯双肩包时尚女书包背包男大容量	  198.00  
 58  	北极狐laptop笔记本电脑包13/15/17英寸男女手提双肩背包学生书包	  719.00  
 59  	NIKE耐克男包女包户外旅行包大容量休闲包学生书包运动双肩包背包	  199.00  
 60  	米熙休闲运动背包双肩包女书包中学生男韩版时尚大容量旅游旅行包	  89.00   
 61  	小米双肩包简约休闲多功能书包男女笔记本电脑包时尚潮流旅行背包	  129.00  
 62  	卡帝乐双肩包男背包女韩版初中高中学生书包男士商务电脑旅行包 	  75.80   
 63  	鳄鱼男士双肩包商务大容量电脑简约背包休闲旅行学生时尚潮流书包	  139.00  
 64  	三级包绝地求生吃鸡3级背包男双肩包时尚潮流高中初中小学生书包	  39.90   
 65  	佑一良品潮牌双肩包男时尚潮流大容量皮质书包休闲简约旅行皮背包	  128.00  
 66  	Herschel Supply Retreat经典色时尚潮流男女双肩包书包背包潮牌	  697.00  
 67  	迪士尼书包小学生男女1-3-4-6年级米奇减负背包儿童书包8-10-12岁	  69.00   
 68  	Dickies新款潮牌双肩包女潮流ins风女迷你书包男学生小背包M069	  148.00  
 69  	迪士尼儿童书包男童1小学生3-5三四六年级女男孩轻便美国队长4一6	  98.00   
 70  	中款M+ 日本cilocala双肩包女 新款帆布包旅行背包 韩版学生书包	  408.40  
 71  	迪卡侬官网户外双肩包登山旅行包男书包初中高中学生休闲背包QUBP	  49.90   
 72  	Issey Miyake三宅一生女包几何菱格双肩包时尚背包户外运动书包女	 2660.00  
 73  	鳄鱼双肩包男女背包大容量商务休闲男士电脑包旅行包书包时尚潮流	  139.00  
 74  	双肩包女背包2018新款韩版潮牛津布帆布时尚百搭书包旅行小包2019	  68.00   
 75  	迪士尼书包小学生男童1-3-4五年级6-12周岁女孩儿童减负双肩背包	  89.00   
 76  	香港yome书包小学生儿童背包男1-23年级女童包减负轻便护脊双肩包	  148.00  
 77  	台湾unme书包 小学生男1-3-6年级儿童背包女孩6-12周岁双肩包护脊	  210.00  
 78  	tigerfamily变形金刚书包小学生男女1-3年级小马宝莉双肩背包6岁	  438.00  
 79  	背包男双肩包休闲大容量旅行包时尚潮流韩版高中生初中学生书包男	  46.00   
 80  	国家地理背包女运动户外时尚双肩包男牛津布旅行防水学生情侣书包	  195.02  
 81  	uniker静音拉杆书包女孩小学生双肩背包男初中时尚旅行休闲行李包	  318.00  
 82  	书包男中学生初中生高中生小学男生背包青少年校园双肩包时尚潮流	  54.00   
 83  	双肩包男士背包大学生大容量旅行电脑女时尚潮流高中初中学生书包	  58.00   
 84  	绝地求生三级包吃鸡3级背包男双肩包刺激战场高中初中小学生书包	  59.90   
 85  	丹尼熊双肩包女2019新款时尚小包帆布书包百搭旅行双肩背包小清新	  159.00  
 86  	背包男时尚潮流韩版大容量旅行包休闲简约电脑双肩包潮牌学生书包	  128.00  
 87  	中学生书包女双肩包2019新款潮韩版原宿ulzzang 高中简约初中背包	  79.00   
 88  	双肩包女2019新款时尚百搭小背包软皮休闲旅游旅行大容量韩版书包	  69.00   
 89  	KK剑桥树书包小学生男孩1-3-5年级儿童6-12周岁男童双肩背包减负	  119.00  
 90  	迪士尼拉杆书包小学生男童1-3-4年级美国队长3轮爬楼儿童双肩背包	  188.00  
 91  	ins风超火的迷你背包2019新款双肩女包小清新百搭书包时尚小包包	  125.00  
 92  	迪士尼书包小学生男童1-3-4年级美国队长蜘蛛侠男孩儿童双肩背包6	  98.00   
[Finished in 1.7s]

你可能感兴趣的:(数据分析)