You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

828 lines
30 KiB

from pprint import pprint
import asyncio
from pyppeteer import launch
from bs4 import BeautifulSoup
from _arango import ArangoDB
from time import sleep
from colorprinter.print_color import *
async def get_info(browser, id_number):
try:
page = await browser.newPage()
await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36')
url = f'https://transparency-register.europa.eu/search-details_en?id={id_number}'
await page.goto(url, {'waitUntil': 'networkidle2'})
content = await page.content()
await page.close()
soup = BeautifulSoup(content, 'html.parser')
info_html = soup.find_all('div', class_='ecl')[0]
headers = info_html.find_all('h2')
tables = info_html.find_all('table')
headers_and_tables = zip(headers, tables)
data = {}
for header, table in headers_and_tables:
header_text = header.text.strip()
data[header_text] = {}
rows = table.find_all('tr')
for row in rows:
cells = row.find_all('td')
if len(cells) == 2:
row_name = cells[0].get_text(strip=True)
cell_content = cells[1]
# Check if the cell contains a list
ul = cell_content.find('ul')
if ul:
list_items = [li.get_text(strip=True) for li in ul.find_all('li')]
data[header_text][row_name] = {'list': list_items}
else:
cell_text = cell_content.get_text(strip=True)
links = cell_content.find_all('a')
cell_links = {link.get_text(strip=True): link['href'] for link in links}
if cell_links:
data[header_text][row_name] = {'text': cell_text, 'links': cell_links}
else:
data[header_text][row_name] = {'text': cell_text}
data['html'] = str(info_html)
return data
except Exception as e:
print(f"Error fetching info for ID {id_number}: {e}")
return None
def update_info_from_html():
arango = ArangoDB()
arango_docs = [i for i in arango.db.collection('eu_lobbyists').all()]
na = len(arango_docs)
n=0
new_docs = []
for doc in arango_docs:
n += 1
html = doc['html']
data = extract_from_html(html, {'html': html})
data['_key'] = doc['_key']
new_docs.append(data)
print(f'{n}/{na}', end='\r')
arango.db.collection('eu_lobbyists').insert_many(data, overwrite=True)
def extract_from_html(html, data = {}):
soup = BeautifulSoup(html, 'html.parser')
info_html = soup.find_all('div', class_='ecl')[0]
headers = info_html.find_all('h2')
tables = info_html.find_all('table', {'class': 'ecl-table ecl-table--zebra'})
headers_and_tables = zip(headers, tables)
for header, table in headers_and_tables:
header_text = header.text.strip()
if header_text not in data:
data[header_text] = {}
rows = table.find_all('tr')
table_data = {}
for row in rows:
cells = row.find_all('td')
if len(cells) == 2:
row_name = cells[0].get_text(strip=True)
cell_content = cells[1]
elif len(cells) == 1:
row_name = header_text
cell_content = cells[0]
else:
continue
# Check if the cell contains a list
ul = cell_content.find('ul')
if ul:
list_items = [li.get_text(strip=True) for li in ul.find_all('li')]
table_data[row_name] = list_items
if header_text == row_name:
table_data = list_items
else:
cell_text = cell_content.get_text(strip=True)
links = cell_content.find_all('a')
cell_links = {link.get_text(strip=True): link['href'] for link in links}
if cell_links:
table_data[row_name] = {'text': cell_text, 'links': cell_links}
else:
table_data[row_name] = {'text': cell_text}
for k, v in table_data.items():
data[header_text][k] = v
return data
async def get_all_lobbyists(browser, page_number):
try:
page = await browser.newPage()
await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36')
url = f'https://transparency-register.europa.eu/searchregister-or-update/search-register_en?searchType=REGISTRANTS&page={page_number}#list-of-all-lobbyists'
await page.goto(url, {'waitUntil': 'networkidle2'})
content = await page.content()
await page.close()
soup = BeautifulSoup(content, 'html.parser')
links = soup.find_all('a', class_='ecl-link')
ids = [link['href'].split('=')[-1] for link in links if 'search-details' in link['href']]
return ids
except Exception as e:
print(f"Error fetching lobbyists for page {page_number}: {e}")
return []
async def main():
arango = ArangoDB()
if not arango.db.has_collection('eu_lobbyists'):
arango.db.create_collection('eu_lobbyists')
#arango.db.collection('eu_lobbyists').truncate()
browser = await launch(headless=True, args=['--no-sandbox', '--disable-setuid-sandbox'])
try:
for page_number in range(1, 148):
sleep(1.3)
ids = await get_all_lobbyists(browser, page_number)
tasks = []
for id_number in ids:
if not arango.db.collection('eu_lobbyists').get(id_number):
tasks.append(get_info(browser, id_number))
sleep(1.6)
results = await asyncio.gather(*tasks)
for id_number, data in zip(ids, results):
if data:
data['_key'] = id_number
if 'Profile of registrant' in data:
arango.db.collection('eu_lobbyists').insert(data, overwrite=True)
print(f'Inserted {id_number}')
else:
print(f'"Profile of registrant" not in {id_number}')
finally:
await browser.close()
if __name__ == '__main__':
html = '''
<div class="ecl">
<div>
<h2 id="profile-of-registrant">Profile of registrant</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Organisation name</strong>:
</td>
<td class="ecl-table__cell">
<strong>Associação Portuguesa para o Desenvolvimento Local</strong>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>REG Number</strong>:
</td>
<td class="ecl-table__cell">
<span>500479542151-73</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Status</strong>:
</td>
<td class="ecl-table__cell">Activated</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Registration date</strong>:
</td>
<td class="ecl-table__cell">07/04/2021 19:44:13</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>The registrant performed the last (partial or annual) update on</strong>:
</td>
<td class="ecl-table__cell">29/02/2024 13:18:08</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Next annual update due latest on</strong>:
</td>
<td class="ecl-table__cell">28/02/2025</td>
</tr>
</tbody>
</table>
<h2 id="applicantregistrant-organisation-or-self-employed-individuals"> Applicant/registrant: organisation or self-employed individuals</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Organisation name</strong>:
</td>
<td class="ecl-table__cell">
<span>Associação Portuguesa para o Desenvolvimento Local</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Acronym</strong>:
</td>
<td class="ecl-table__cell">
<span>ANIMAR</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Form of entity</strong>:
</td>
<td class="ecl-table__cell">
<span>Associação Sem Fim Lucrativo</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Website</strong>:
</td>
<td class="ecl-table__cell">
<a href="http://animar-dl.pt" target="_blank">http://animar-dl.pt</a>
</td>
</tr>
</tbody>
</table>
<h2 id="contact-details">Contact details</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td colspan="2" class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Contact details of your organisation's head office</strong>:
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Address</strong>:
</td>
<td class="ecl-table__cell">
<span>Av. Santos Dumont, 57 - 1º Esq. Avenidas Novas</span>
<span></span>
<span></span>
<span>1050-202</span>
<span>Lisboa</span>
<span>PORTUGAL</span>
<span></span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Telephone</strong>:
</td>
<td class="ecl-table__cell">
(+<span>351</span> )
<span>21 952 74 50</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Contact details of your organisation's office in charge of EU relations </strong>:
</td>
<td class="ecl-table__cell">
<span>Same as the head office</span>
</td>
</tr>
</tbody>
</table>
<h2 id="person-with-legal-responsibility">Person with legal responsibility</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Person with legal responsibility for the organisation</strong>:
</td>
<td class="ecl-table__cell">
<span>Mr</span>
<span>Marco</span>
<span>Domingues</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Position</strong>:
</td>
<td class="ecl-table__cell">
<span>President</span>
</td>
</tr>
</tbody>
</table>
<h2 id="person-in-charge-of-eu-relations">Person in charge of EU relations</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Person in charge of EU relations</strong>:
</td>
<td class="ecl-table__cell">
<span>Ms</span>
<span>Sara</span>
<span>Trindade</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Position</strong>:
</td>
<td class="ecl-table__cell">
<span>Direction Member</span>
</td>
</tr>
</tbody>
</table>
<h2 id="goalsremit">Goals/remit</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Goals/remits of your organisation</strong>:
</td>
<td class="ecl-table__cell">
<pre style="word-wrap: break-word; white-space: pre-line; font-family: var(--eui-base-font-family);">MISSÃO
Valorizar, promover e reforçar o desenvolvimento local, a cidadania ativa, a igualdade e a coesão social na sociedade portuguesa, enquanto pilares de uma sociedade mais justa, equitativa, solidária e sustentável.
VISÃO
Ser reconhecida pela sociedade civil e pelo Estado, como a organização de referência promotora do desenvolvimento integrado, na diversidade de contextos, organizações e territórios.
CULTURA
Ser laica, apartidária, autónoma do Estado e promotora de interesses coletivos e representativos da sociedade civil; Ser uma organização de pontes para a convergência e concertação das organizações da sociedade civil, cidadãos e cidadãs, no reforço do interesse comum junto do Estado; Assumir a sua identidade na diversidade de organizações, indivíduos, territórios e contextos de atuação, e daí, destacar a multiplicidade de modelos de desenvolvimento local; Assumir a pluralidade de opiniões e modelos de atuação enquanto desafio inerente à promoção do desenvo (...)</pre>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Level of interest represented</strong>:
</td>
<td class="ecl-table__cell">
<div>
<ul>
<li>
<span>National</span>
</li>
</ul>
</div>
</td>
</tr>
</tbody>
</table>
<h2 id="interests-represented">Interests represented</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Applicant/registrant's representation</strong>:
</td>
<td class="ecl-table__cell">
<span>
<span>Promotes their own interests or the collective interests of their members</span>
</span>
</td>
</tr>
</tbody>
</table>
<h2 id="specific-activities-covered-by-the-register">Specific activities covered by the Register</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Main EU legislative proposals or policies targeted</strong>:
</td>
<td class="ecl-table__cell">
<pre style="word-wrap: break-word; white-space: pre-line; font-family: var(--eui-base-font-family);">Desenvolvimento Local
Governança, Cidadania e Igualdade
Sustentabilidade, Coesão Social e Territorial
Inovação e Empreendedorismo
Empregabilidade
Economia Social</pre>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Communication activities (events, campaigns, publications, etc.) related to the EU policies above</strong>:
</td>
<td class="ecl-table__cell">
<span style="word-wrap: break-word; white-space: pre-line; font-family: var(--eui-base-font-family);">https://www.animar-dl.pt/
https://www.animar-dl.pt/recursos/
https://www.animar-dl.pt/projetos/</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Intergroups and unofficial groupings (European Parliament)</strong>:
</td>
<td class="ecl-table__cell">
<div>
<ul>
<li>
<span>
<span>Unofficial groupings</span>:
<span>_Social Economy Europe (a partir da CASES - Cooperativa António Sérgio para a Economia Social)</span>
</span>
</li>
</ul>
</div>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Participation in other EU supported forums and platforms</strong>:
</td>
<td class="ecl-table__cell">
<pre style="word-wrap: break-word; white-space: pre-line; font-family: var(--eui-base-font-family);">_Comissão de Acompanhamento do PDR2020
_ERASMUS+
_Confederação Portuguesa de Economia Social</pre>
</td>
</tr>
</tbody>
</table>
<table class="ecl-table ecl-table--zebra ecl-u-mt-2xl ecl-u-border-top">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell">
<strong>List of meetings with European Commission: </strong>
<div class="ecl-popover" data-ecl-auto-init="Popover" data-ecl-auto-initialized="true">
<a href="javascript:void(0)" class="ecl-link ecl-link--standalone ecl-link--icon ecl-link--icon-before ecl-popover__toggle" aria-controls="popover-meetings" data-ecl-popover-toggle="" aria-expanded="false">
<svg class="ecl-icon ecl-icon--fluid ecl-link__icon" focusable="false" aria-hidden="true"><use xlink:href="/themes/contrib/oe_theme/dist/eu/images/icons/sprites/icons.svg#information"></use></svg>
</a>
<div id="popover-meetings" class="ecl-popover__container" hidden="" style="width: 25em">
<div class="ecl-popover__content">This field displays the list of any meetings the registrant has held with Commissioners, Members of their Cabinet or Director-Generals since 01/12/2014 under its current identification number in the Register.</div>
</div>
</div>
</td>
<td>
<span>N/A</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Open Public Consultations">
<strong>List of contributions to public consultations</strong>:
<div class="ecl-popover" data-ecl-auto-init="Popover" data-ecl-auto-initialized="true">
<a href="javascript:void(0)" class="ecl-link ecl-link--standalone ecl-link--icon ecl-link--icon-before ecl-popover__toggle" aria-controls="popover-publicConsultation" data-ecl-popover-toggle="" aria-expanded="false">
<svg class="ecl-icon ecl-icon--fluid ecl-link__icon" focusable="false" aria-hidden="true"><use xlink:href="/themes/contrib/oe_theme/dist/eu/images/icons/sprites/icons.svg#information"></use></svg>
</a>
<div id="popover-publicConsultation" class="ecl-popover__container" hidden="" style="width: 25em">
<div class="ecl-popover__content">This field displays list of public consultations to which the entity contributed since 24/07/2018 under its current identification number in the Register (provided that the entity indicated the TR ID/REG number in its contribution).</div>
</div>
</div>
</td>
<td class="ecl-table__cell">
<ul>
<li>
<a href="https://ec.europa.eu/info/law/better-regulation/have-your-say/initiatives/12722-demographic-change-in-europe---green-paper-on-ageing/public-consultation" target="_blank" class="ecl-link ecl-link--standalone ecl-link--icon ecl-link--icon-after">
<span>Demographic change in Europe - green paper on ageing</span></a>
</li>
</ul>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Roadmaps">
<strong>List of contributions to roadmaps</strong>:
<div class="ecl-popover" data-ecl-auto-init="Popover" data-ecl-auto-initialized="true">
<a href="javascript:void(0)" class="ecl-link ecl-link--standalone ecl-link--icon ecl-link--icon-before ecl-popover__toggle" aria-controls="popover-roadmaps" data-ecl-popover-toggle="" aria-expanded="false">
<svg class="ecl-icon ecl-icon--fluid ecl-link__icon" focusable="false" aria-hidden="true"><use xlink:href="/themes/contrib/oe_theme/dist/eu/images/icons/sprites/icons.svg#information"></use></svg>
</a>
<div id="popover-roadmaps" class="ecl-popover__container" hidden="" style="width: 25em">
<div class="ecl-popover__content">This field displays list of roadmaps to which the entity contributed since 24/07/2018 under its current identification number in the Register (provided that the entity indicated the TR ID number in its contribution)</div>
</div>
</div>
</td>
<td class="ecl-table__cell">
<span>N/A</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Commission expert groups and other similar entities (European commission)</strong>:
<div class="ecl-popover" data-ecl-auto-init="Popover" data-ecl-auto-initialized="true">
<a href="javascript:void(0)" class="ecl-link ecl-link--standalone ecl-link--icon ecl-link--icon-before ecl-popover__toggle" aria-controls="popover-experts" data-ecl-popover-toggle="" aria-expanded="false">
<svg class="ecl-icon ecl-icon--fluid ecl-link__icon" focusable="false" aria-hidden="true"><use xlink:href="/themes/contrib/oe_theme/dist/eu/images/icons/sprites/icons.svg#information"></use></svg>
</a>
<div id="popover-experts" class="ecl-popover__container" hidden="" style="width: 25em">
<div class="ecl-popover__content">This field displays membership of any active Expert groups and is limited to Type C (Organisation) and Type B (Individual expert appointed as a representative of a common interest) members.</div>
</div>
</div>
</td>
<td class="ecl-table__cell">
<div>
<span>N/A</span>
</div>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell">
<strong>List of meetings with the European Parliament</strong>:
</td>
<td><a target="_blank" href="https://www.europarl.europa.eu/meps/en/search-meetings?transparencyRegisterIds=500479542151-73"><span>Meeting declarations</span></a></td>
</tr>
</tbody>
</table>
<h2 id="number-of-persons-involved-in-the-activities">Number of persons involved in the activities</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Number of persons involved from your organisation expressed in % of working time</strong>:
</td>
<td class="ecl-table__cell">
<b>100%</b>:
<span>0</span>,
<b>75%</b>:
<span>0</span>,
<b>50%</b>:
<span>0</span>,
<b>25%</b>:
<span>0</span>,
<b>10%</b>:
<span>2</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Number of persons involved (total)</strong>:
</td>
<td class="ecl-table__cell">
<span>2</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Full time equivalent (FTE)</strong>:
</td>
<td class="ecl-table__cell">
<span>0.2</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Complementary information</strong>:
</td>
<td class="ecl-table__cell">
<pre style="word-wrap: break-word; white-space: pre-line; font-family: var(--eui-base-font-family);">N/A</pre>
</td>
</tr>
</tbody>
</table>
<h2 id="persons-accredited-for-access-to-european-parliament-premises">Persons accredited for access to European Parliament premises</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<span class="ecl-col-m-12 ecl-u-mt-m ecl-u-type-align-center">No accredited persons</span>
</td>
</tr>
</tbody>
</table>
<h2 id="fields-of-interest">Fields of interest</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Fields of interest</strong>:
</td>
<td class="ecl-table__cell">
<ul>
<li>
<span>Agriculture and rural development</span>
</li>
<li>
<span>Climate action</span>
</li>
<li>
<span>Culture</span>
</li>
<li>
<span>Culture and media</span>
</li>
<li>
<span>Digital economy and society</span>
</li>
<li>
<span>Education and training</span>
</li>
<li>
<span>Employment and social affairs</span>
</li>
<li>
<span>Environment</span>
</li>
<li>
<span>International co-operation and development</span>
</li>
<li>
<span>Migration and asylum</span>
</li>
<li>
<span>Regional policy</span>
</li>
<li>
<span>Research and innovation</span>
</li>
<li>
<span>Youth</span>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
<h2 id="membership-and-affiliation">Membership and affiliation</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>List of membership in associations, (con)federations, networks and other bodies </strong>:
</td>
<td class="ecl-table__cell">
<pre style="word-wrap: break-word; white-space: pre-line; font-family: var(--eui-base-font-family);">https://www.animar-dl.pt/quem-somos/filiacoes-e-parcerias/</pre>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>List of members and affiliate/partner organisations </strong>:
</td>
<td class="ecl-table__cell">
<pre style="word-wrap: break-word; white-space: pre-line; font-family: var(--eui-base-font-family);">https://www.animar-dl.pt/entidades/</pre>
</td>
</tr>
</tbody>
</table>
<h2 id="category-of-registration">Category of registration</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Category of registration</strong>:
</td>
<td class="ecl-table__cell">
<span>Non-governmental organisations, platforms and networks and similar</span>
</td>
</tr>
</tbody>
</table>
<h2 id="financial-data">Financial data</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Closed financial year</strong>:
</td>
<td class="ecl-table__cell">
<span>01/2022 - 12/2022</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>EU grants for the most recent closed financial year</strong>:
</td>
<td class="ecl-table__cell">
<span>N/A</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>EU grants for the current financial year</strong>:
</td>
<td class="ecl-table__cell">
<span>N/A</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Intermediaries in the most recent closed financial year</strong>:
</td>
<td class="ecl-table__cell">
<span>N/A</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell">
<strong>Intermediaries in the current financial year</strong>:
</td>
<td class="ecl-table__cell">
<span>N/A</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell">
<strong>Estimate of annual costs related to activities covered by the register</strong>:
</td>
<td class="ecl-table__cell">
<!-- <10000 -->
<!-- >=1000000 -->
<!-- - -->
<span>
<span>€10,000</span>
-
<span>€24,999</span>
</span>
</td>
</tr>
<tr>
<td class="ecl-table__cell">
<strong>Complementary information</strong>:
</td>
<td class="ecl-table__cell">
<pre style="word-wrap: break-word; white-space: pre-line; font-family: var(--eui-base-font-family);">N/A</pre>
</td>
</tr>
</tbody>
</table>
<h2 id="code-of-conduct">Code of conduct</h2>
<table class="ecl-table ecl-table--zebra">
<tbody class="ecl-table__body">
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>Code of conduct</strong>:
</td>
<td class="ecl-table__cell">
<span>By its registration the organisation has signed the Transparency Register Code of Conduct</span>
</td>
</tr>
<tr class="ecl-table__row">
<td class="ecl-table__cell" data-ecl-table-header="Profile of registrant">
<strong>If the applicant/registrant is also bound by another(professional) code of conduct it can be indicated in this space</strong>:
</td>
<td class="ecl-table__cell">
<span>N/A</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
'''
#data = extract_from_html(html)
#pprint(data['Fields of interest'])
update_info_from_html()
#asyncio.get_event_loop().run_until_complete(main())