python爬虫学习笔记(三)——淘宝商品比价实战(爬取成功)

2020年最新淘宝商品比价定向爬取

功能描述
目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格。
理解:淘宝的搜索接口
翻页的处理
技术路线:requests­          re
程序的结构设计
步骤1:提交商品搜索请求,循环获取页面
步骤2:对于每个页面,提取商品名称和价格信息
步骤3:将信息输出到屏幕上
爬取时淘宝模拟登录即可爬取相关信息
2020年5月最新的“淘宝商品信息定向爬虫”实例编写
#cookie的获取方法:
打开淘宝商品页面,登录你的淘宝账号,F12进入浏览器的开发者调试工具,点击Network,重新刷新页面,选择最上面的search?initiative_id=......的dos文件,找到Request Headers,复制里面的cookie内容,这样,你就能够获得你的cookie了
#使用的库
import re
import requests
#发起请求的函数(这里我们需要浏览器获取cookie)
def gethttptext(url):
    try:
        kv = {
            'cookie':  #自己获取
            'user-agent':'Mozilla/5.0'
        }
        r=requests.get(url,headers=kv,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        print("提取失败")
        return ""
# 获取各个商品的信息
def parsepage(ilt,html):
    try:
        plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"', html)
        tlt = re.findall(r'\"raw_title\"\:\".*?\"', html)
        # print(tlt)
        print(len(plt))
        for i in range(len(plt)):
            price = eval(plt[i].split(':')[1])
            title = eval(tlt[i].split(':')[1])
            ilt.append([title, price])
        # print(ilist)
    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]))
#主函数
if __name__=="__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=gethttptext(url)
            parsepage(infolist,html)
        except:
            continue
    printgoodslist(infolist)
#全部代码
import requests
import re
def gethttptext(url):
    try:
        kv = {
            'cookie':#
            'user-agent':'Mozilla/5.0'
        }
        r=requests.get(url,headers=kv,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        print("提取失败")
        return ""

def parsepage(ilt,html):
    try:
        plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"', html)
        tlt = re.findall(r'\"raw_title\"\:\".*?\"', html)
        # print(tlt)
        print(len(plt))
        for i in range(len(plt)):
            price = eval(plt[i].split(':')[1])
            title = eval(tlt[i].split(':')[1])
            ilt.append([title, price])
        # print(ilist)
    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]))

if __name__=="__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=gethttptext(url)
            parsepage(infolist,html)
        except:
            continue
    printgoodslist(infolist)

爬取结果

序号              商品名称                                   价格
1 广州深圳鲜花同城2小时送达保证新鲜 107.89
2 买1送1玫瑰花茶干花泡茶干玫瑰花茶重瓣玫瑰 19.80
3 买一送一八年苗嫁接玫瑰花苗绿植盆栽室内花 3.90
4 【肖战同款】ROSEONLY甜心兔公仔 永生玫瑰花礼盒 送女友节日礼物 1520.00
5 520情人节玫瑰花束鲜花速递同城全国配送花北京上海广州成都杭州 149.00
6 99朵红玫瑰花束生日鲜花速递北京上海广州深圳成都杭州西安同城送 158.00
7 鲜花速递同城香槟玫瑰花束礼盒上海南京苏州杭州宁波合肥生日送花 98.00
8 520情人节鲜花速递 同城配送上海北京南京深圳广州99朵红玫瑰花束 158.00
9 荷叶茶冬瓜荷叶茶叶纯干玫瑰花茶袋泡花草茶包组合天然决明正品子 29.90
10 520情人节鲜花速递 同城配送北京上海广州深圳南京西安99朵玫瑰花 188.00
11 永生花玻璃罩玫瑰520礼物送女友情人节告白礼盒生日真干花束摆件 169.00
12 西安鲜花同城速递520情人节红玫瑰生日表白花束礼盒西安花店配送 128.00
13 鲜花速递同城生日玫瑰花束礼盒花店送花上门北京上海深圳杭州广州 98.00
14 520情人节99朵玫瑰花束北京鲜花速递同城长春天津上海广州成都店 158.00
15 521人节99朵红玫瑰花束上海鲜花速递同城杭州苏州北京合肥深圳 98.00
16 520情人节鲜花速递 同城配送上海北京广州沈阳成都99朵红玫瑰花束 88.00
17 521情人节99朵红玫瑰花束鲜花速递同城重庆成都上海北京生日花店 88.00
18 521深圳鲜花速递同城玫瑰花束罗湖福田南山宝安龙岗龙华生日送花 88.00
19 鲜花速递礼盒花束红玫瑰生日北京同城配送上海南京广州杭州店全国 98.00
20 菊花茶金丝皇菊黄菊大一朵一杯菊花花茶胎菊特级贡菊去火清热解毒 45.00
21 生日广州鲜花速递99朵红香槟紫粉白玫瑰花束订花同城配送混搭花店 68.00
22 保加利亚玫瑰花仿真花束单支美式复古欧式装饰花假花绢花客厅摆件 68.80
23 上海广州深圳成都天津南京北京鲜花速递同城生日玫瑰手提花篮花店 148.00
24 520情人节鲜花速递同城99朵红玫瑰花束青岛济南北京广州南京成都 158.00
25 成都鲜花同城速递花店送花配送妈妈玫瑰康乃馨情人节订花花束生日 148.00
26 永生花玻璃罩礼盒干花束生日礼物送女友玫瑰花情人节蓝色妖姬520 128.00
27 永生花礼盒玻璃罩玫瑰干花束520情人母亲节康乃馨送女友生日礼物 158.00
28 520情人节鲜花速递同城红玫瑰花束生日礼盒北京上海广州深圳店送 96.00
29 520情人节鲜花速递99朵玫瑰花束生日广州苏州重庆上海南京同城送 98.00
30 蔷薇花苗藤本月季大花浓香庭院爬藤植物花卉盆栽阳台玫瑰爬墙四季 16.80
31 买2送1玫瑰花茶女人茶泡水茶花草茶山东平阴干玫瑰花食用袋装散装 19.00
32 520情人节北京天津鲜花速递同城送花玫瑰花束生日送闺蜜女友芍药 246.00
33 99朵红玫瑰花束生日真鲜花速递同城配送杭州北京上海深圳全国花店 98.00
34 520情人节鲜花速递同城玫瑰花束礼盒花店北京上海深圳苏州杭州 81.60
35 520情人节杭州鲜花速递同城玫瑰花绣球混搭花束生日花店送花爱人 118.00
36 鲜花速递同城520玫瑰花束礼盒生日北京上海广州深圳店配送花上门 98.00
37 520情人节北京鲜花速递同城玫瑰花束天津南京西安石家庄生日花店 98.00
38 鲜花速递同城99朵红玫瑰花束深圳上海广州北京沈阳东莞生日送花店 88.00
39 520情人节杭州鲜花速递同城玫瑰花绣球混搭花束送爱人生日订花店 119.00
40 北京鲜花速递同城生日玫瑰花束韩式礼盒抱抱桶花篮情人节花店配送 158.00
41 鲜花速递同城配送重庆深圳南昌郑州长沙西安成都99朵红玫瑰花束店 78.00
42 鲜花速递同城配送99朵红玫瑰花束礼盒生日香槟订花真花合肥六安庆 130.00
43 521情人节红玫瑰花束鲜花速递同城青岛胶州潍坊烟台济南生日送花 88.00
44 修正玫瑰荷叶茶叶纯干玫瑰花茶袋泡花草组合山楂决明子冬瓜茶 59.90
45 520情人节鲜花速递同城全国上海北京生日红玫瑰花束礼盒配送花店 148.00
46 玫瑰花鲜花云南昆明基地直批直发新鲜批发家用水养花束速递 同城 26.90
47 向日葵花束生日配送鲜花速递同城花店成都北京上海杭州全国送花 119.00
48 郑州鲜花速递同城玫瑰花生日开封洛阳信阳南阳周口520情人节花束 108.00
49 郑州鲜花速递同城玫瑰花生日开封洛阳信阳南阳周口520情人节花束 108.00
50 修正桂圆红枣枸杞茶姜茶五宝茶八宝茶花茶包男女组合玫瑰菊花泡茶 56.90
51 520情人节广州鲜花速递同城玫瑰礼盒生日花束深圳花店订花配送 88.00
52 抱抱桶鲜花速递南京同城手提花篮玫瑰无锡常州苏州上海杭州送花店 178.00
53 520情人节红香槟玫瑰花束礼盒生日上海鲜花速递同城订花店配送花 108.00
54 北京天津生日鲜花速递同城送花玫瑰花百合花向日葵康乃馨鲜花花束 211.20
55 进口永生花礼盒小王子玫瑰玻璃罩送女友生日520情人节礼物干花束 125.00
56 成都鲜花店同城速递红玫瑰花束重庆西安太原郑州泸州绵阳生日配送 55.00
57 520长沙鲜花同城速递宁乡株洲湘潭常德永州红玫瑰礼盒生日送花束 88.00
58 520情人节鲜花速递同城上海北京沈阳武汉天津成都99朵红玫瑰花束 88.00
59 520情人节鲜花速递同城 配送北京上海济南成都重庆沈阳99朵红玫瑰 98.00
60 520情人节鲜花速递同城配送长沙株洲常德衡阳湘潭99朵红玫瑰花束 88.00
61 520情人节云南昆明99朵玫瑰花束真鲜花速递大理丽江同城直发配送 98.00
62 进口永生花礼盒玻璃罩玫瑰花干花520情人节礼物送女友生日礼品 138.00
63 云南墨红玫瑰花冠茶干可食用花茶大朵特级平阴玫瑰花冠茶干花泡茶 29.90
64 红玫瑰花束礼盒鲜花速递广州深圳东莞佛山惠州中山同城生日送花店 88.00
65 520情人节鲜花速递同城配送99朵玫瑰花束康乃馨天津河北河西塘沽 98.00
66 99朵玫瑰花束鲜花速递同城配送沈阳大连鞍山抚顺丹东锦州生日 78.00
67 521成都红玫瑰花束礼盒鲜花速递同城新都武侯青羊双流金牛送花店 88.00
68 99朵玫瑰花束鲜花速递同城配送长春吉林市延吉松原白城通化生日店 78.00
69 云南昆明基地直发玫瑰花鲜花批发包邮直批一扎20支家用插花直供 16.90
70 ROSEONLY告白气球礼盒 永生花玫瑰熊公仔送女友爱人节日礼物 1799.00
71 永生花礼盒玫瑰花玻璃罩干花520情人节礼物送女友生日礼品保鲜花 99.00
72 521情人节红玫瑰花束鲜花速递同城合肥芜湖安庆蚌埠六安阜阳送花 88.00
73 依雯然永生花礼盒玻璃罩情人节七夕生日告白礼物送女友玫瑰干花 96.00
74 情人节99玫瑰花束鲜花速递同城广州深圳东莞佛山珠海中山江门生日 149.45
75 鲜花同城速递99朵红玫瑰花束上海北京杭州花店表白求婚生日礼盒 157.84
76 进口永生花礼盒玻璃罩玫瑰情人节520生日礼物干花花束摆件送女友 299.00
77 THE BEAST/野兽派吊带裙天使脸颊小猫音乐永生花礼盒礼物生日礼物 2299.00
78 花店同城送花 520玫瑰花礼盒朋友生日鲜花速递 上海混搭花盒配送 358.00
79 99朵红玫瑰鲜花速递同城花束生日鲜花爱情鲜花配送送女友九十九支 388.00
80 乌鲁木齐鲜花速递99朵红粉玫瑰花束生日礼盒天山新市同城配送花店 158.00
81 520情人节杭州鲜花速递同城玫瑰花绣球混搭花束生日订花店送上门 118.00
82 521情人节红玫瑰花束礼盒鲜花速递同城武汉长沙杭州苏州生日送花 88.00
83 521情人节鲜花速递玫瑰礼盒生日花束上海北京深圳杭州花店同城送 108.00
84 玫瑰花束南昌鲜花速递同城赣州萍乡九江上饶宜春吉安景德镇情人节 129.00
85 情人节99玫瑰花束长沙鲜花速递同城株洲常德衡阳湘潭岳阳益阳生日 102.90
86 THE BEAST/野兽派星座项链千叶玫瑰永生花礼盒生日礼物 580.00
87 香槟玫瑰百合花北京鲜花同城速递广州上海鲜花店南昌宁波苏州送花 138.00
88 养中和桂圆红枣枸杞茶玫瑰花茶花草茶组合女人泡水喝饮品15袋盒装 39.90
89 仿真玫瑰花客厅装饰电视柜插花摆设绢花单支塑料假花花束干花摆件 24.90
90 玫瑰花苗大花带花苞花卉观花绿植物盆栽月季蔷薇室内庭院阳台四季 5.80
91 520情人节沈阳鲜花同城速递混搭花束生日鲜花康乃馨绣球玫瑰欧式 118.00
92 521情人节南京鲜花速递同城红玫瑰花束武汉合肥上海苏州生日送花 78.00

你可能感兴趣的:(python,python爬虫,python,cookie,正则表达式,servlet,session)