Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! .venv/bin/python3
- import psycopg2
- import psycopg2.extras
- import requests
- import sys
- import time
- import json
- import random
- from enum import Enum
- class SL(Enum):
- SHORT = 1
- LONG = 2
- def main():
- conn = psycopg2.connect("dbname=degiro user=postgres password=pw host=localhost port=14000")
- cur = conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
- cur.execute("select nextval('g_seq')")
- fetchsize = 100
- sessionid = sys.argv[1]
- j = get(sessionid, 0, fetchsize)
- store(j, cur)
- left = j['total'] - fetchsize
- offset = fetchsize
- while left > 0:
- j = get(sessionid, offset, fetchsize)
- store(j, cur)
- left = left - fetchsize
- print( f"request got offset {offset} plus {fetchsize}, now left {left}")
- offset = offset + fetchsize
- conn.commit()
- cur.close()
- conn.close()
- def get(sessionid, offset, limit):
- url = ( f"https://trader.degiro.nl/product_search/secure/v5/leverageds?popularOnly=false&inputAggregateTypes=issuer"
- f"&inputAggregateValues=8&offset={offset}&limit={limit}&requireTotal=true&sortColumns=name&sortTypes=asc&intAccount=111111111_use_what_your_browser_puts_here"
- f"&sessionId={sessionid}" )
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:74.0) Gecko/20100101 Firefox/74.0',
- 'Accept': 'application/json, text/plain, */*',
- 'Accept-Language': 'en-US,en;q=0.5',
- 'Referer': 'https://trader.degiro.nl/trader4/',
- 'Connection': 'keep-alive',
- 'Cookie': f"JSESSIONID={sessionid}",
- 'Pragma': 'no-cache',
- 'Cache-Control': 'no-cache',
- 'TE': 'Trailers'
- }
- print (url)
- r = requests.get(url, headers=headers)
- if (r.status_code != 200):
- print("get failed, exiting")
- sys.exit(255)
- time.sleep(random.randint(1, 9))
- return r.json()
- def store(j, cur):
- for p in j['products']:
- print(p['name'])
- cur.execute("insert into raw (t, g, j) values (current_timestamp, currval('g_seq'), %s)", (json.dumps(p),))
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement