淘宝爬取某人的所有购物订单

做风险控制和个人征信,需要做数据挖掘,第一步就是要爬到消费记录,当然还有很多其他项包括收货地址 宝贝收藏 快速退款额度 芝麻信用 绑定的手机等等,先要爬到数据才能分析。

淘宝直接请求登录接口不可行,不知道post参数加密规则,(大公司安全就是做得好),用selenium操作浏览器来登录得到driver的cookie,然后requests携带cookie去爬订单。如果全部都由selenium爬取无疑很慢,所以selenium负责登录就行。

上代码。

#coding=utf-8
import time,random,requests,json

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

class Taobao(object):

    def __init__(self,name,password):
        self.name=name
        self.password=password
        self.login_url=‘https://login.taobao.com/member/login.jhtml?redirectURL=https%3A%2F%2Fwww.taobao.com%2F‘
        self.order_url=‘https://buyertrade.taobao.com/trade/itemlist/asyncBought.htm?action=itemlist/BoughtQueryAction&event_submit_do_query=1&_input_charset=utf8‘
        self.num=0
        self.cost=0

    def login(self):     ###如果用phantomjs浏览器就用这个
        # dcap = dict(DesiredCapabilities.PHANTOMJS)
        # dcap["phantomjs.page.settings.userAgent"] = (‘Mozilla/5.0(WindowsNT6.1;WOW64) AppleWebKit/537.36(KHTML, likeGecko) Chrome/59.0.3071.115Safari/537.36x-requested-with:XMLHttpRequest‘)#(random.choice(agents))
        # dcap["phantomjs.page.settings.loadImages"] = True
        # driver = webdriver.PhantomJS(executable_path=‘C:\\Python27\\phantomjs.exe‘,desired_capabilities=dcap)

        driver=webdriver.Chrome()
        driver.get(self.login_url)
        driver.find_element_by_id(‘J_Quick2Static‘).click()

        WebDriverWait(driver, 30, 0.5).until(EC.presence_of_element_located((By.ID, ‘TPL_username_1‘)))
        driver.find_element_by_id(‘TPL_username_1‘).send_keys(self.name)
        driver.save_screenshot(‘1.jpg‘)                                      ##用phantomjs无界面浏览器最好需要截图
        driver.find_element_by_id(‘TPL_password_1‘).send_keys(self.password)
        driver.save_screenshot(‘2.jpg‘)
        driver.find_element_by_id(‘J_SubmitStatic‘).click()
        time.sleep(10)
        driver.save_screenshot(‘3.jpg‘)
        self.cookies={}
        for dictx in driver.get_cookies():
            self.cookies[dictx[‘name‘]]=dictx[‘value‘]
        driver.quit()

    def get_orders(self,p,flag):
        if flag==0:
            self.login()
            print self.cookies
        datax={‘pageNum‘:p+1,
                ‘pageSize‘:15,
               ‘prePageNo‘:p,
               }
        header = {‘origin‘: ‘https://buyertrade.taobao.com‘,           ###origin和refere一定需要,否则会请求不到订单数据
                ‘referer‘:‘https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm‘,
                ‘user-agent‘:‘Mozilla/5.0(WindowsNT6.1;WOW64) AppleWebKit/537.36(KHTML, likeGecko) Chrome/59.0.3071.115Safari/537.36x-requested-with:XMLHttpRequest‘,
                  #‘cookie‘:‘miid=387872062667523128; thw=cn;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.....‘,  ##如果不用浏览器登录,可以在headrs中携带字符串形式的cookie
                  }
        resp=requests.post(self.order_url,data=datax,cookies=self.cookies,headers=header)
        #resp=requests.post(self.order_url,data=datax,headers=header)
        #print resp.content.decode(‘gbk‘)
        orders_dictx = json.loads(resp.content.decode(‘gbk‘))
        pages=orders_dictx[‘page‘][‘totalPage‘]
        for order in orders_dictx[‘mainOrders‘]:
            self.num+=1

            self.cost+=float(order[‘payInfo‘][‘actualFee‘])
            print self.num,‘ ‘,order[‘subOrders‘][0][‘itemInfo‘][‘title‘],‘    价格是: ‘,order[‘payInfo‘][‘actualFee‘],‘元 交易状态是:‘,order[‘statusInfo‘][‘text‘],self.cost

        if flag==0:
            for p in range(1,pages+1):
                self.get_orders(p,1)

if __name__=="__main__":
    pass
    tb=Taobao(‘[email protected]‘,‘123xxxxxxxx‘)
    tb.get_orders(0,0)

运行后爬到的订单。

要爬很多项,已购买宝贝只是其中之一,账号 密码要做成做接口传过来触发爬虫。然后保存各项数据,做数据挖掘用。

根据统计,我在淘宝购物了205次,花费了28613.53元。

时间: 2024-10-18 01:20:48

淘宝爬取某人的所有购物订单的相关文章

淘宝爬取个人资料、微博绑定、收货地址、支付宝绑定设置、安全设置等信息

登录采用浏览器登录,或者直接记住cookie两种方式.usecookie=1使用cookie,broser支持三种浏览器. #coding=utf-8 import time,random,requests,json,re from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_c

淘宝抓取数据

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using Stock.BLL;using System.Text.RegularExpressions;using System.Xml;using System.Data.SqlClient;using System.Web; namespace Stock.DAL{ public class

使用python爬取淘宝商品名称和价格

最近在家闲得无聊,由于家里开网点,妈妈对于起商品标题感到很头痛,所以我就想在淘宝爬取一些信息. 小破站找了个学习视频,跟一遍发现视频是2018年的,而淘宝在2019年可能加入了反爬取机制,使用正常的方法爬不到结果. 但是有一种方式可以爬取,要先登陆淘宝网页版,然后去搜索,获取cookie和user-agent. 代码如下: import requests import re def getHTMLText(url): kv = {'cookie':'cna=54y8Fm+TyioCATzcP+B

图片抓取,根据关键字爬取淘宝或百度前4张图片

通过关键字查询淘宝网或者百度图片,并下载到本地前四张图片 1 private new string Capture(string productTitle) 2 { 3 string result = string.Empty; 4 try 5 { 6 string url = string.Empty; 7 //汉子转码 8 string contant = HttpUtility.UrlEncode(productTitle); 9 url = string.Format(@"https:/

“淘宝”给生活添彩 购物体验不断改善

几年前,提起网络购物,不少消费者可能抱有不太信任的态度.如今,网上购物渐成时尚,成为很多消费者购物的第一选择.大到汽车.家电,小到衣服.零食,从家电等标准化商品,到订制礼物等个性化产品,网络购物覆盖面越来越广,服务消费者的能力越来越强. 闲来没事,逛逛淘宝.近几年,作为中国电子商务企业的旗舰品牌,淘宝和天猫从消费者需求角度出发,推出个性化.人性化的服务.逛淘宝已经从最初单纯的购物,演变成一种休闲方式."双十一"购物节."年末电商打折季"成为不少消费者期待的"

淘宝重启创新:新技术、新青年、新文化

101年前,横空出世了一本叫做<新青年>的杂志.<新青年>的创刊是"五四"新文化运动兴起的标志,<新青年>杂志是中国现代文学和文化思想史上最重要的刊物之一.在其创刊词中写道,要实现社会的进步与变革,关键在于新一代青年的自身觉悟和观念更新. 101年后,一家叫做淘宝的网站达到了4亿活跃买家数量,这个数字相当于101年前中国人口的总和.阿里巴巴集团CEO张勇说,淘宝网35岁80后的消费者比例达到80%,24岁以下90后消费者的比例为35%,而这1.4亿9

手机淘宝新人0元购红包

手机淘宝新人0元购红包大礼包如何领取?小编详细介绍如何通过淘宝新人0元购的福利社,领取新人礼包并免费在淘宝购物. 什么是淘宝新人0元购? 淘宝新人0元购,大家看这个字面的意思,就知道是0元免费购物,不需要任何费用就可以在淘宝上面购物了.必须使用新的手机号,在新人福利社0元购地址,注册手机淘宝账号,然后登陆领取新人礼包,就可以利用你领取的新人礼包,免费在淘宝上面购物. 淘宝新人0元购是真的吗? 淘宝新人0元购绝对是真实的,是淘宝的一个优惠活动,只限首次注册手机淘宝的新用户参加. 淘宝新人0元购注意

淘宝店货源怎么找,淘宝无货源开店的一些经验分享。

又一个毕业季节,回忆我的毕业季节,十年不知不觉地过去了.回想大学时代,互联网信息技术还没有这么发达,信息传播的渠道和速度仍然有限.我们没有微信,更不用说微商务了.我们使用"大屁股"电脑,诺基亚手机. 当时,学生创业的热情和受欢迎程度普遍不高.不像今天的大学生,他们一入学就可能被创业氛围所感染,这实际上与社会发展有关.如今,创业不再遥不可及. 我创业历史上的第一个项目是开淘宝店.我记得我买了一本"淘宝购物指南",开始学习淘宝.当时是2006年,大学生在淘宝网上购物并不

php 读取淘宝卖家下载的CSV订单文件数据

2018年7月份,淘宝突然改了后台导出的订单文件格式,改变点如下: 1.字段有变化,增加支付信息,所以列信息有变化 2.原来分隔符是\t,制表符,现在是逗号,换行符是\n ,unix的换行符(LF) 折腾了几次,发现php 用读取csv的函数读取,读取的数据不全,有些行读取不到. 最后,还是用读取整个文件来处理.函数如下 function read_csv($cvs){ setlocale(LC_ALL, 'zh_CN'); $rsl=array(); $tmpfile=file_get_con