Kā apskatīties detalizētāku darījumu vēsturi Mintos platformā

Mintos platforma piedāvā ļoti ierobežotu iespēju apskatīties informāciju par vēsturiskiem darījumiem (atmaksātiem vai pārdotiem), jo pieejama ir tikai informācija par aktīviem darījumiem vai konta izraksts tikai ar darījuma identifikatoru un summu. Tāpēc manuāli jāatver katrs darījums.
Tā kā radās nepieciešamība apskatīties noslēgtos darījumus, izveidoju skriptu, kas papildus pievieno klāt kategoriju pie darījuma izraksta.
Pēc tam, salīdzinot to ar atvērtiem darījumiem un konta izrakstu (‘vlookup’ excelī), varam iegūt jau
precīzu sarakstu.

Skripts izskatās šāds:

#! /usr/bin/python
#search for history deals in mintos.com
import sys #utf-8
reload(sys)
sys.setdefaultencoding('utf8')
import requests
import csv
import time
import string
from lxml import html
import re

def auth_sub(user,passw):
	print 'Auth'
	r=requests.Session()
	req= r.get ('https://www.mintos.com/lv/', verify=False)
	tree = html.fromstring(req.text)
	hash = tree.xpath('//input[@type="hidden"][@name="_csrf_token"]/@value')
	hashs= hash[0] #csrf token
	data={'_username':user,'_password':passw,'_csrf_token':'%s'%hashs}
	url='https://www.mintos.com/en/login/check'
	req = r.post(url, headers={'referer': 'https://www.mintos.com/en/login'},timeout=5, data=data, verify=False)
	if req.status_code!=200:
		print 'Error:%s'%req.status_code
		sys.exit()
	#submit form
	print 'Sub'	
	data={'from':'01.05.2015','to':'30.12.2015'}
	url='https://www.mintos.com/en/account-statement/list'
	req = r.post(url, headers={'referer': 'https://www.mintos.com/en/account-statement/'},data=data, timeout=5, verify=False)
	if req.status_code!=200:
			print 'Error:%s'%req.status_code
			sys.exit()	
	tree = html.fromstring(req.text)
	#store uniq results in the list
	print 'Get deal ID'
	title = tree.xpath('//div[@id="overview-details"]/table/tbody/tr/td/a/text()')
	dar= list()
	for titl in title:
			dar.append(titl)
	mylist = list(set(dar))#only uniq to be kind to server
	return mylist	

def crowler(mylist):
	print 'Start crowler'
	erro=list()#for errors
	csv_out = open('st.csv', 'a') #for results
	mywriter = csv.writer(csv_out)
	r=requests.Session()
	retry_on_exceptions = (requests.exceptions.Timeout,requests.exceptions.ConnectionError,requests.exceptions.HTTPError)
	for m in mylist:
		try:
			req= r.get ('https://www.mintos.com/lv/%s'%m, timeout=5, verify=False)
			tree = html.fromstring(req.text)
			title = tree.xpath('//*[@id="info-wrapper"]/table/tbody/tr[1]/td[2]/text()')
			t = title[0]
			#t=re.sub('[^A-Za-z0-9]+', '', t)
			mywriter.writerow ((m,t))
			time.sleep(1) #be kind
		except retry_on_exceptions:
			time.sleep(3)
			print "Error: %s"%m
			erro.append(m)
			continue		
	return erro
	csv_out.close()

if __name__ == "__main__":
	print 'Go'
	mylist=auth_sub('email@mail.com','yourpassw')		
	erro=crowler(mylist)
	while  (len(erro)<> 0):
		erro=crowler(erro)
	print 'Fin'

Leave a Reply