淘宝搜索商品结果内容爬取

import json
import execjs
import requests
import time
import hashlib


url = 'https://h5api.m.taobao.com/h5/mtop.alimama.union.xt.en.api.entry/1.0/?'
headers = {
    'Referer':'https://uland.taobao.com/',
    'User-Agent':'',
}
cookies = {
    'cna':'AoYFHTLSGQQCAXB64U7RY/6C',
    'xlly_s':'1',
    't':'7575075e347f479d0eee2c5a21599bf6',
    'sgcookie':'E100lLK8NSWxT8a6mjxxmWRB4OEQ%2FlGaOd%2BznubWeUddTxG9RO516pBOZmYxK%2BGMhYiWCZYeowdRrSp%2FCgWnPK7uhpXyGzOc4eOiiJQzlBtYVNb4wEcyuuXqvxGZoDwlsVbc',
    'uc3':'id2=UUpgQhIwentaFPHE6g%3D%3D&vt3=F8dCsGCpNx9UBndAoU4%3D&nk2=F5RNY%2B8U7LKQh4dl&lg2=U%2BGCWk%2F75gdr5Q%3D%3D',
    'lgc':'tb8640887158',
    'uc4':'nk4=0%40FY4GtKS74PioQfLxaoGmYstr0Scw0l8%3D&id4=0%40U2gqzcK36v8aRid7pzv9UF516uL0tBxJ',
    'tracknick':'tb8640887158',
    '_cc_':'VFC%2FuZ9ajQ%3D%3D',
    'thw':'cn',
    'mt':'ci=-1_0',
    'cookie2':'23267c8c5b3a7b23f1ec1372c3c90af9',
    'uc1':'cookie14=Uoe9bFjd62XYJQ%3D%3D',
    '_tb_token_':'e3b3eadee1e05',
    '_m_h5_tk':'398643d742c308b8b4f648f0a3e4dd7f_1691291540929',
    '_m_h5_tk_enc':'4c24e4fdf1440ef069a1ff7aecb45d6a',
    'isg':'BF9fZh4rR9hbnkOfq-cAb58e7rPpxLNmRm2ucPGsMo5VgH4C-Zfbtn8RQhD-OIve',
    'l':'fBMZeBhuNpyU12eKBO5CPurza77TZIRb8sVzaNbMiIEGa6MR1F18SNC6TceMRdtjgT5cVetyzs0aOdEk77ULRFkDBeYIpIqLACJ68eM3N7AN.',
    'tfstk':'dD7MvJZ2aG-_Cw50nVL_WVowEErp1ATXEt3vHEp4YpJIXEE1MIjhNtvTGlTOxKXFKduT11BHgtffX5tYCjc1-T0xWRZ1gqYvu8e8yzC16ET4eDpnrAtkkfEyLiaR11TjsxPRYzdcVYmRXu0YyHoCS5xkEjDoZTf36ivP_d5O6wlDbc1MKOXN8CjHUOSiY0lE5qOUMwojchRBtLdRlfUh.'
}
data = {
    "pNum":0,
    "pSize":"60",
    "refpid":"mm_26632258_3504122_32538762",
    "variableMap":"{\"q\":\"机车\",\"navigator\":false,\"clk1\":\"a79006e39befffbcc4f5c9834616b520\",\"union_lens\":\"recoveryid:201_33.60.246.239_41010821_1691245037632;prepvid:201_33.8.101.132_41083358_1691249875820\",\"recoveryId\":\"201_33.70.129.175_41070250_1691249942756\"}",
    "qieId":"36308",
    "spm":"a2e0b.20350158.31919782",
    "app_pvid":"201_33.70.129.175_41070250_1691249942756",
    "ctm":"spm-url:a2e0b.20350158.search.1;page_url:https%3A%2F%2Fuland.taobao.com%2Fsem%2Ftbsearch%3Frefpid%3Dmm_26632258_3504122_32538762%26keyword%3D%25E6%259C%25BA%25E8%25BD%25A6%26clk1%3Da79006e39befffbcc4f5c9834616b520%26upsId%3Da79006e39befffbcc4f5c9834616b520%26spm%3Da2e0b.20350158.search.1%26pid%3Dmm_26632258_3504122_32538762%26union_lens%3Drecoveryid%253A201_33.60.246.239_41010821_1691245037632%253Bprepvid%253A201_33.8.101.132_41083358_1691249875820"
}
KEY = input('请输入你要搜索的商品:')
PAGE = int(input('请输入页码:'))
data['variableMap'] = data['variableMap'].replace('机车', KEY)
for page in range(PAGE):
    data['pNum'] = page
    params = {
        'jsv':'2.5.1',
        'appKey':'12574478',
        't':'',
        'sign':'',
        'api':'mtop.alimama.union.xt.en.api.entry',
        'v':'1.0',
        'AntiCreep':'true',
        'timeout':'20000',
        'AntiFlood':'true',
        'type':'jsonp',
        'dataType':'jsonp',
        'callback':'mtopjsonp2',
        'data':json.dumps(data, ensure_ascii=False)
    }
    session = requests.Session()
    # 获取cookies
    response = session.get(url=url, headers=headers, params=params)
    cookie = response.cookies.get_dict()
    c = cookie['_m_h5_tk'].split('_')[0]
    # js逆向
    t = int(time.time() * 1000)
    # 抠js代码
    with open('淘宝.js', 'r', encoding='utf-8') as f:
        encode = f.read()
    sign = execjs.compile(encode).call('start', t, params['data'], c)
    s = c + "&" + str(t) + "&" + '12574478' + "&" + params['data']
    print(sign)
    # 或者MD5加密
    md5 = hashlib.md5()
    md5.update(s.encode('utf-8'))
    b = md5.hexdigest()
    print(b)
    params['t'] = t
    params['sign'] = sign
    cookies['_m_h5_tk'] = cookie['_m_h5_tk']
    cookies['_m_h5_tk_enc'] = cookie['_m_h5_tk_enc']

    resp = session.get(url=url, headers=headers, params=params, cookies=cookies)
    con = resp.text.replace('mtopjsonp2(','').replace(')', '')
    con = json.loads(con)
    for i in con['data']['recommend']['resultList']:
        print(i)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值