博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
淘宝爬取某人的所有购物订单
阅读量:6589 次
发布时间:2019-06-24

本文共 3885 字,大约阅读时间需要 12 分钟。

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

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

上代码。

#coding=utf-8import time,random,requests,jsonfrom selenium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.desired_capabilities import DesiredCapabilitiesclass 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('369xxxx@qq.com','123xxxxxxxx') tb.get_orders(0,0)

 

 

运行后爬到的订单。

 

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

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

转载地址:http://mskio.baihongyu.com/

你可能感兴趣的文章
如何写出兼容大部分浏览器的CSS 代码
查看>>
第二阶段冲刺第八天,6月7日。
查看>>
java的左移位(<<)和右移位(>>)和无符号右移(>>>)
查看>>
struts2 action 返回类型分析
查看>>
【原创】FPGA开发手记(三) PS/2键盘
查看>>
viewpage滑动查看图片并再有缩略图预览
查看>>
linux统计多个文件大小总和
查看>>
java基础-Eclipse开发工具介绍
查看>>
JS常见的字符串操作
查看>>
洛谷P1069 细胞分裂 数学
查看>>
JAVA中的编码分析
查看>>
查看源代码Source not found及在eclipse中配置jdk的src.zip源代码
查看>>
document.all用法
查看>>
uniGUI试用笔记(二)
查看>>
HOG特征-理解篇
查看>>
Microsoft.AlphaImageLoader滤镜解说
查看>>
extjs_02_grid(显示本地数据,显示跨域数据)
查看>>
超过响应缓冲区限制
查看>>
ubuntu 下安装 matplotlib
查看>>
webservice的几个简单概念
查看>>