import requests
from bs4 import BeautifulSoup
import re
import pandas as pd
url = '
https://www.oree.com.ua/index.php/graphs_trading_t4/get_table_data'
payload = {"date": "12.2020", "filter": "OES_sell"}
r =
requests.post(url, data=payload, verify=False )
soup = BeautifulSoup(r.text, 'html.parser')
def parse_value(value: str, pattern_for_validate: list):
for p in pattern_for_validate:
try:
sr =
re.search(p, value)
return ''.join(list(sr.groups()))
except:
continue
patterns = ['<th>(\S*\d)\**</th>',
'<td>(\d*)\D*(\d*,\d*)</td>',
'<td>([\w*\s*]*)</td>',
'<th>([\w*\s*]*)</th>']
a = soup.find_all('th')
b = soup.find_all('td')
col0 = [parse_value(str(i), patterns) for i in a[0:35]]
col1 = [parse_value(str(i), patterns) for i in b[0:35]]
col2 = [parse_value(str(i), patterns) for i in b[35:70]]
col3 = [parse_value(str(i), patterns) for i in b[70:105]]
col4 = [parse_value(str(i), patterns) for i in b[105:140]]
col5 = [parse_value(str(i), patterns) for i in b[140:175]]
df = pd.DataFrame([col1,col2,col3,col4,col5], columns=col0)
df