Spaces:
Sleeping
Sleeping
Commit
·
5901908
1
Parent(s):
a45d429
graph done
Browse files- app.py +236 -42
- logs/scrapping/cmc_global_metrics.log +24 -0
- logs/scrapping/cmc_scrapping.log +104 -0
- logs/scrapping/etherscan_scrap.log +62 -0
- logs/scrapping/greed_fear_index.log +21 -0
- logs/streamlit/front.log +264 -0
- output/all_influencers_interactions.csv +3 -0
- output/cmc_data_v1_cryptocurrency_listings_latest_100.json +2 -2
- output/global_metrics.csv +2 -2
- output/greed_fear_index.csv +1 -1
- output/influencers_balances.csv +2 -2
- output/influencers_token_balances.csv +3 -0
- output/interactions_alexBecker.csv +3 -0
- output/interactions_elliotrades.csv +3 -0
- output/interactions_jrny.csv +3 -0
- output/top_100_update.csv +2 -2
- output/transactions_APE.csv +2 -2
- output/transactions_AXIE.csv +2 -2
- output/transactions_COPI.csv +3 -0
- output/transactions_GALA.csv +2 -2
- output/transactions_MANA.csv +2 -2
- output/transactions_PET.csv +2 -2
- output/transactions_WEAOPON.csv +2 -2
- requirements.txt +4 -1
- ressources/dict_influencers_addr.json +1 -2
- ressources/dict_tokens_addr.json +2 -1
- utils/extract_tokens_balances.py +50 -0
- utils/extract_wallet_interactions.py +50 -0
app.py
CHANGED
@@ -10,6 +10,7 @@ from dotenv import load_dotenv
|
|
10 |
from requests.exceptions import ConnectionError, Timeout, TooManyRedirects
|
11 |
import plotly.express as px
|
12 |
import json
|
|
|
13 |
|
14 |
# ------------------------ Environment Variables --------------------------
|
15 |
|
@@ -125,53 +126,205 @@ def display_greed_fear_index():
|
|
125 |
except FileNotFoundError:
|
126 |
st.error("Greed and Fear index data not available. Please wait for the next update cycle.")
|
127 |
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
threading.Timer(3600, execute_etherscan_scraping).start()
|
135 |
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
logging.info("Influencers balance scraping completed")
|
140 |
-
threading.Timer(3600, execute_influencers_scraping).start() # Run every hour, for example
|
141 |
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
|
|
|
|
148 |
|
|
|
|
|
|
|
149 |
|
150 |
-
#
|
151 |
-
|
152 |
-
subprocess.call(["python", "utils/scrap_cmc_global_metrics.py"])
|
153 |
-
logging.info("Global metrics scraping completed")
|
154 |
-
threading.Timer(2592000 / 9000, execute_influencers_scraping).start() # Run every hour, for example
|
155 |
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
|
161 |
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
|
171 |
#-------------------------------------streamlit ----------------------------------
|
172 |
|
173 |
# Set the title and other page configurations
|
174 |
st.title('Crypto Analysis')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
|
176 |
st.header("Global Cryptocurrency Market Metrics")
|
177 |
# Create two columns for the two plots
|
@@ -259,7 +412,7 @@ with col1:
|
|
259 |
selected_token = st.selectbox('Select Token', df_etherscan['tokenSymbol'].unique(), index=0)
|
260 |
# Filter the data based on the selected token
|
261 |
filtered_df = df_etherscan[df_etherscan['tokenSymbol'] == selected_token]
|
262 |
-
# Plot the token
|
263 |
st.plotly_chart(
|
264 |
go.Figure(
|
265 |
data=[
|
@@ -267,13 +420,13 @@ with col1:
|
|
267 |
x=filtered_df['timeStamp'],
|
268 |
y=filtered_df['value'],
|
269 |
mode='lines',
|
270 |
-
name='
|
271 |
)
|
272 |
],
|
273 |
layout=go.Layout(
|
274 |
-
title='Token
|
275 |
yaxis=dict(
|
276 |
-
title=f'
|
277 |
),
|
278 |
showlegend=True,
|
279 |
legend=go.layout.Legend(x=0, y=1.0),
|
@@ -284,7 +437,34 @@ with col1:
|
|
284 |
)
|
285 |
)
|
286 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
287 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
with col2:
|
289 |
influencers = load_influencers()
|
290 |
with st.container():
|
@@ -342,7 +522,21 @@ with col2:
|
|
342 |
else:
|
343 |
logging.info("DataFrame is empty")
|
344 |
|
345 |
-
|
346 |
-
st.header("
|
347 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
348 |
#-------------------------------------end ----------------------------------
|
|
|
|
10 |
from requests.exceptions import ConnectionError, Timeout, TooManyRedirects
|
11 |
import plotly.express as px
|
12 |
import json
|
13 |
+
import networkx as nx
|
14 |
|
15 |
# ------------------------ Environment Variables --------------------------
|
16 |
|
|
|
126 |
except FileNotFoundError:
|
127 |
st.error("Greed and Fear index data not available. Please wait for the next update cycle.")
|
128 |
|
129 |
+
def load_token_balances():
|
130 |
+
try:
|
131 |
+
return pd.read_csv("output/influencers_token_balances.csv")
|
132 |
+
except FileNotFoundError:
|
133 |
+
logging.warning("Token balances file not found.")
|
134 |
+
return pd.DataFrame() # Return an empty DataFrame if file is not found
|
|
|
135 |
|
136 |
+
def create_token_balance_bar_plot(df):
|
137 |
+
if df.empty:
|
138 |
+
return go.Figure() # Return an empty figure if there is no data
|
|
|
|
|
139 |
|
140 |
+
fig = px.bar(df, x="Influencer", y="Balance", color="Token", barmode="group")
|
141 |
+
fig.update_layout(
|
142 |
+
title="Token Balances of Influencers",
|
143 |
+
xaxis_title="Influencer",
|
144 |
+
yaxis_title="Token Balance",
|
145 |
+
legend_title="Token"
|
146 |
+
)
|
147 |
+
return fig
|
148 |
|
149 |
+
def get_top_buyers(df, token, top_n=5):
|
150 |
+
# Filter for selected token
|
151 |
+
token_df = df[df['tokenSymbol'] == token]
|
152 |
|
153 |
+
# Assuming 'value' column holds the amount bought and 'from' column holds the buyer's address
|
154 |
+
top_buyers = token_df.groupby('from')['value'].sum().sort_values(ascending=False).head(top_n)
|
|
|
|
|
|
|
155 |
|
156 |
+
return top_buyers.reset_index()
|
157 |
+
|
158 |
+
def plot_top_buyers(df):
|
159 |
+
fig = px.bar(df, x='from', y='value', title=f'Top 5 Buyers of {selected_token}',orientation="h")
|
160 |
+
fig.update_layout(xaxis_title="Address", yaxis_title="Total Amount Bought")
|
161 |
+
return fig
|
162 |
+
|
163 |
+
def load_influencer_interactions(influencer_name):
|
164 |
+
try:
|
165 |
+
# Load the influencer addresses dictionary
|
166 |
+
with open("ressources/dict_influencers_addr.json", "r") as file:
|
167 |
+
influencers = json.load(file)
|
168 |
+
|
169 |
+
# Get the address of the specified influencer
|
170 |
+
influencer_address = influencers.get(influencer_name, None)
|
171 |
+
if influencer_address is None:
|
172 |
+
return pd.DataFrame(), None
|
173 |
+
|
174 |
+
file_path = f"output/interactions_{influencer_name}.csv"
|
175 |
+
df = pd.read_csv(file_path)
|
176 |
+
|
177 |
+
# Keep only the 'from', 'to', and 'value' columns and remove duplicates
|
178 |
+
df = df[['from', 'to', 'value']].drop_duplicates()
|
179 |
+
return df, influencer_address
|
180 |
+
except FileNotFoundError:
|
181 |
+
return pd.DataFrame(), None
|
182 |
+
|
183 |
+
|
184 |
+
def create_network_graph(df, influencer_name, influencer_address):
|
185 |
+
G = nx.Graph()
|
186 |
+
|
187 |
+
# Consider bidirectional interactions
|
188 |
+
df_bi = pd.concat([df.rename(columns={'from': 'to', 'to': 'from'}), df])
|
189 |
+
interaction_counts = df_bi.groupby(['from', 'to']).size().reset_index(name='count')
|
190 |
+
top_interactions = interaction_counts.sort_values('count', ascending=False).head(20)
|
191 |
+
|
192 |
+
# Add edges and nodes to the graph
|
193 |
+
for _, row in top_interactions.iterrows():
|
194 |
+
G.add_edge(row['from'], row['to'], weight=row['count'])
|
195 |
+
G.add_node(row['from'], type='sender')
|
196 |
+
G.add_node(row['to'], type='receiver')
|
197 |
+
|
198 |
+
# Node positions
|
199 |
+
pos = nx.spring_layout(G, weight='weight')
|
200 |
+
|
201 |
+
# Edge trace
|
202 |
+
edge_x = []
|
203 |
+
edge_y = []
|
204 |
+
edge_hover = []
|
205 |
+
for edge in G.edges(data=True):
|
206 |
+
x0, y0 = pos[edge[0]]
|
207 |
+
x1, y1 = pos[edge[1]]
|
208 |
+
edge_x.extend([x0, x1, None])
|
209 |
+
edge_y.extend([y0, y1, None])
|
210 |
+
edge_hover.append(f'Interactions: {edge[2]["weight"]}')
|
211 |
+
|
212 |
+
edge_trace = go.Scatter(
|
213 |
+
x=edge_x, y=edge_y,
|
214 |
+
line=dict(width=2, color='#888'),
|
215 |
+
hoverinfo='text',
|
216 |
+
text=edge_hover,
|
217 |
+
mode='lines')
|
218 |
+
|
219 |
+
# Node trace
|
220 |
+
node_x = []
|
221 |
+
node_y = []
|
222 |
+
node_hover = []
|
223 |
+
node_size = []
|
224 |
+
|
225 |
+
for node in G.nodes():
|
226 |
+
x, y = pos[node]
|
227 |
+
node_x.append(x)
|
228 |
+
node_y.append(y)
|
229 |
+
connections = len(G.edges(node))
|
230 |
+
interaction_sum = interaction_counts[interaction_counts['from'].eq(node) | interaction_counts['to'].eq(node)]['count'].sum()
|
231 |
+
node_hover_info = f'Address: {node}<br># of connections: {connections}<br># of interactions: {interaction_sum}'
|
232 |
+
if node == influencer_address:
|
233 |
+
node_hover_info = f'Influencer: {influencer_name}<br>' + node_hover_info
|
234 |
+
node_size.append(30) # Central node size
|
235 |
+
else:
|
236 |
+
node_size.append(20) # Other nodes size
|
237 |
+
node_hover.append(node_hover_info)
|
238 |
+
|
239 |
+
node_trace = go.Scatter(
|
240 |
+
x=node_x, y=node_y,
|
241 |
+
mode='markers',
|
242 |
+
hoverinfo='text',
|
243 |
+
text=node_hover,
|
244 |
+
marker=dict(
|
245 |
+
showscale=False,
|
246 |
+
color='blue',
|
247 |
+
size=node_size,
|
248 |
+
line=dict(width=2, color='black')))
|
249 |
+
|
250 |
+
# Create figure
|
251 |
+
fig = go.Figure(data=[edge_trace, node_trace],
|
252 |
+
layout=go.Layout(
|
253 |
+
title=f'<br>Network graph of wallet interactions for {influencer_name}',
|
254 |
+
titlefont=dict(size=16),
|
255 |
+
showlegend=False,
|
256 |
+
hovermode='closest',
|
257 |
+
margin=dict(b=20, l=5, r=5, t=40),
|
258 |
+
xaxis=dict(showgrid=False, zeroline=False, showticklabels=False),
|
259 |
+
yaxis=dict(showgrid=False, zeroline=False, showticklabels=False)))
|
260 |
+
|
261 |
+
return fig, top_interactions
|
262 |
|
263 |
|
264 |
+
#-------------------------------------scheduler ----------------------------------
|
265 |
+
|
266 |
+
# # Function to execute the scraping functions
|
267 |
+
# def execute_etherscan_scraping():
|
268 |
+
# subprocess.call(["python", "utils/scrap_etherscan.py"])
|
269 |
+
# logging.info("Etherscan scraping completed")
|
270 |
+
# threading.Timer(3600, execute_etherscan_scraping).start()
|
271 |
+
|
272 |
+
# # Balancer scrapping
|
273 |
+
# def execute_influencers_scraping():
|
274 |
+
# subprocess.call(["python", "utils/scrap_influencers_balance.py"])
|
275 |
+
# logging.info("Influencers balance scraping completed")
|
276 |
+
# threading.Timer(3600, execute_influencers_scraping).start()
|
277 |
+
|
278 |
+
|
279 |
+
# # Function to execute the scraping functions
|
280 |
+
# def execute_cmc_scraping():
|
281 |
+
# subprocess.call(["python", "utils/scrap_cmc.py"])
|
282 |
+
# logging.info("CMC scraping completed")
|
283 |
+
# threading.Timer(2592000 / 9000, execute_cmc_scraping).start()
|
284 |
+
|
285 |
+
|
286 |
+
# # Function to execute the global metrics scraping
|
287 |
+
# def execute_global_metrics_scraping():
|
288 |
+
# subprocess.call(["python", "utils/scrap_cmc_global_metrics.py"])
|
289 |
+
# logging.info("Global metrics scraping completed")
|
290 |
+
# threading.Timer(2592000 / 9000, execute_influencers_scraping).start()
|
291 |
+
|
292 |
+
# def execute_greed_fear_index_scraping():
|
293 |
+
# subprocess.call(["python", "utils/scrap_greed_fear_index.py"])
|
294 |
+
# logging.info("Greed and Fear index scraping completed")
|
295 |
+
# threading.Timer(3600, execute_greed_fear_index_scraping).start()
|
296 |
+
|
297 |
+
# def execute_token_balances_scraping():
|
298 |
+
# subprocess.call(["python", "utils/extract_tokens_balances.py"])
|
299 |
+
# logging.info("Token balances scraping completed")
|
300 |
+
# threading.Timer(3600, execute_token_balances_scraping).start()
|
301 |
+
|
302 |
+
|
303 |
+
# if "initialized" not in st.session_state:
|
304 |
+
# # Start the scraping threads
|
305 |
+
# threading.Thread(target=execute_etherscan_scraping).start()
|
306 |
+
# threading.Thread(target=execute_cmc_scraping).start()
|
307 |
+
# threading.Thread(target=execute_influencers_scraping).start()
|
308 |
+
# threading.Thread(target=execute_global_metrics_scraping).start()
|
309 |
+
# threading.Thread(target=execute_greed_fear_index_scraping).start()
|
310 |
+
# threading.Thread(target=execute_token_balances_scraping).start()
|
311 |
+
# st.session_state["initialized"] = True
|
312 |
|
313 |
#-------------------------------------streamlit ----------------------------------
|
314 |
|
315 |
# Set the title and other page configurations
|
316 |
st.title('Crypto Analysis')
|
317 |
+
st.write("Welcome to the Crypto Analysis app. Please note that data is not updated automatically due to API plan limitations.")
|
318 |
+
# Update Data Button
|
319 |
+
if st.button("Scrap new data"):
|
320 |
+
# Execute the scripts in the 'utils' folder to update data
|
321 |
+
subprocess.call(["python", "utils/scrap_etherscan.py"])
|
322 |
+
subprocess.call(["python", "utils/scrap_cmc.py"])
|
323 |
+
subprocess.call(["python", "utils/scrap_influencers_balance.py"])
|
324 |
+
subprocess.call(["python", "utils/scrap_cmc_global_metrics.py"])
|
325 |
+
subprocess.call(["python", "utils/scrap_greed_fear_index.py"])
|
326 |
+
subprocess.call(["python", "utils/extract_tokens_balances.py"])
|
327 |
+
st.success("Data updated successfully!")
|
328 |
|
329 |
st.header("Global Cryptocurrency Market Metrics")
|
330 |
# Create two columns for the two plots
|
|
|
412 |
selected_token = st.selectbox('Select Token', df_etherscan['tokenSymbol'].unique(), index=0)
|
413 |
# Filter the data based on the selected token
|
414 |
filtered_df = df_etherscan[df_etherscan['tokenSymbol'] == selected_token]
|
415 |
+
# Plot the token volume over time
|
416 |
st.plotly_chart(
|
417 |
go.Figure(
|
418 |
data=[
|
|
|
420 |
x=filtered_df['timeStamp'],
|
421 |
y=filtered_df['value'],
|
422 |
mode='lines',
|
423 |
+
name='Volume over time'
|
424 |
)
|
425 |
],
|
426 |
layout=go.Layout(
|
427 |
+
title='Token Volume Over Time',
|
428 |
yaxis=dict(
|
429 |
+
title=f'Volume ({selected_token})',
|
430 |
),
|
431 |
showlegend=True,
|
432 |
legend=go.layout.Legend(x=0, y=1.0),
|
|
|
437 |
)
|
438 |
)
|
439 |
)
|
440 |
+
with col2:
|
441 |
+
# Token selection
|
442 |
+
selected_token = st.selectbox('Select a Token', df_etherscan['tokenSymbol'].unique())
|
443 |
+
|
444 |
+
# Processing data
|
445 |
+
top_buyers_df = get_top_buyers(df_etherscan, selected_token)
|
446 |
+
|
447 |
+
# Plotting
|
448 |
+
if not top_buyers_df.empty:
|
449 |
+
top_buyers_fig = plot_top_buyers(top_buyers_df)
|
450 |
+
top_buyers_fig.update_layout(
|
451 |
+
autosize=False,
|
452 |
+
width=300,
|
453 |
+
height=300)
|
454 |
+
st.plotly_chart(top_buyers_fig)
|
455 |
+
else:
|
456 |
+
st.write(f"No buying data available for {selected_token}")
|
457 |
|
458 |
+
|
459 |
+
st.header("Influencers' Token Balances")
|
460 |
+
token_balances_df = load_token_balances()
|
461 |
+
col1, col2 = st.columns(2)
|
462 |
+
with col1:
|
463 |
+
if not token_balances_df.empty:
|
464 |
+
token_balance_fig = create_token_balance_bar_plot(token_balances_df)
|
465 |
+
st.plotly_chart(token_balance_fig)
|
466 |
+
else:
|
467 |
+
st.write("No token balance data available.")
|
468 |
with col2:
|
469 |
influencers = load_influencers()
|
470 |
with st.container():
|
|
|
522 |
else:
|
523 |
logging.info("DataFrame is empty")
|
524 |
|
525 |
+
# In the Streamlit app
|
526 |
+
st.header("Wallet Interactions Network Graph")
|
527 |
+
selected_influencer = st.selectbox("Select an Influencer", list(influencers.keys()))
|
528 |
+
# Load interactions data for the selected influencer
|
529 |
+
interactions_df, influencer_address = load_influencer_interactions(selected_influencer)
|
530 |
+
if not interactions_df.empty:
|
531 |
+
# Generate the network graph and the table of top interactions
|
532 |
+
network_fig, top_interactions = create_network_graph(interactions_df, selected_influencer, influencer_address)
|
533 |
+
# Display the network graph
|
534 |
+
st.plotly_chart(network_fig)
|
535 |
+
# Display the table of top interactions
|
536 |
+
st.subheader(f"Top Interactions for {selected_influencer}")
|
537 |
+
st.table(top_interactions)
|
538 |
+
else:
|
539 |
+
st.write(f"No wallet interaction data available for {selected_influencer}.")
|
540 |
+
|
541 |
#-------------------------------------end ----------------------------------
|
542 |
+
|
logs/scrapping/cmc_global_metrics.log
CHANGED
@@ -37,3 +37,27 @@
|
|
37 |
2023-11-28 01:58:45,913 [INFO] - Global metrics data fetched successfully.
|
38 |
2023-11-28 01:59:14,099 [INFO] - Global metrics data fetched successfully.
|
39 |
2023-11-28 01:59:31,047 [INFO] - Global metrics data fetched successfully.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
2023-11-28 01:58:45,913 [INFO] - Global metrics data fetched successfully.
|
38 |
2023-11-28 01:59:14,099 [INFO] - Global metrics data fetched successfully.
|
39 |
2023-11-28 01:59:31,047 [INFO] - Global metrics data fetched successfully.
|
40 |
+
2023-11-28 10:33:32,014 [INFO] - Global metrics data fetched successfully.
|
41 |
+
2023-11-28 10:33:53,067 [INFO] - Global metrics data fetched successfully.
|
42 |
+
2023-11-28 10:36:53,158 [INFO] - Global metrics data fetched successfully.
|
43 |
+
2023-11-28 10:44:58,663 [INFO] - Global metrics data fetched successfully.
|
44 |
+
2023-11-28 10:47:21,116 [INFO] - Global metrics data fetched successfully.
|
45 |
+
2023-11-28 11:07:40,154 [INFO] - Global metrics data fetched successfully.
|
46 |
+
2023-11-28 11:09:39,424 [ERROR] - Error fetching global metrics data: HTTPSConnectionPool(host='pro-api.coinmarketcap.com', port=443): Max retries exceeded with url: /v1/global-metrics/quotes/latest (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7fb111a4e310>: Failed to resolve 'pro-api.coinmarketcap.com' ([Errno -3] Temporary failure in name resolution)"))
|
47 |
+
2023-11-28 11:11:46,917 [ERROR] - Error fetching global metrics data: HTTPSConnectionPool(host='pro-api.coinmarketcap.com', port=443): Max retries exceeded with url: /v1/global-metrics/quotes/latest (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f02646b77d0>: Failed to resolve 'pro-api.coinmarketcap.com' ([Errno -3] Temporary failure in name resolution)"))
|
48 |
+
2023-11-28 11:13:43,073 [ERROR] - Error fetching global metrics data: HTTPSConnectionPool(host='pro-api.coinmarketcap.com', port=443): Max retries exceeded with url: /v1/global-metrics/quotes/latest (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f757a99e350>: Failed to resolve 'pro-api.coinmarketcap.com' ([Errno -3] Temporary failure in name resolution)"))
|
49 |
+
2023-11-28 11:31:55,662 [INFO] - Global metrics data fetched successfully.
|
50 |
+
2023-11-28 11:33:16,437 [INFO] - Global metrics data fetched successfully.
|
51 |
+
2023-11-28 11:38:31,535 [INFO] - Global metrics data fetched successfully.
|
52 |
+
2023-11-28 11:41:56,440 [INFO] - Global metrics data fetched successfully.
|
53 |
+
2023-11-28 11:42:08,580 [INFO] - Global metrics data fetched successfully.
|
54 |
+
2023-11-28 11:43:43,358 [INFO] - Global metrics data fetched successfully.
|
55 |
+
2023-11-28 11:57:15,728 [INFO] - Global metrics data fetched successfully.
|
56 |
+
2023-11-28 11:58:10,309 [INFO] - Global metrics data fetched successfully.
|
57 |
+
2023-11-28 12:05:40,716 [INFO] - Global metrics data fetched successfully.
|
58 |
+
2023-11-28 12:06:18,520 [INFO] - Global metrics data fetched successfully.
|
59 |
+
2023-11-28 12:08:03,238 [INFO] - Global metrics data fetched successfully.
|
60 |
+
2023-11-28 12:18:14,152 [INFO] - Global metrics data fetched successfully.
|
61 |
+
2023-11-28 13:10:39,099 [INFO] - Global metrics data fetched successfully.
|
62 |
+
2023-11-28 13:12:08,480 [INFO] - Global metrics data fetched successfully.
|
63 |
+
2023-11-28 13:22:26,139 [INFO] - Global metrics data fetched successfully.
|
logs/scrapping/cmc_scrapping.log
CHANGED
@@ -450,3 +450,107 @@
|
|
450 |
2023-11-28 01:59:31,035 [INFO] - Function fetch_and_process_cmc_data executed in 0.22 seconds
|
451 |
2023-11-28 01:59:54,297 [INFO] - CMC data script execution completed.
|
452 |
2023-11-28 01:59:54,298 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
450 |
2023-11-28 01:59:31,035 [INFO] - Function fetch_and_process_cmc_data executed in 0.22 seconds
|
451 |
2023-11-28 01:59:54,297 [INFO] - CMC data script execution completed.
|
452 |
2023-11-28 01:59:54,298 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
|
453 |
+
2023-11-28 10:33:32,105 [INFO] - CMC data script execution completed.
|
454 |
+
2023-11-28 10:33:32,106 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
|
455 |
+
2023-11-28 10:33:53,199 [INFO] - CMC data script execution completed.
|
456 |
+
2023-11-28 10:33:53,200 [INFO] - Function fetch_and_process_cmc_data executed in 0.31 seconds
|
457 |
+
2023-11-28 10:36:53,233 [INFO] - CMC data script execution completed.
|
458 |
+
2023-11-28 10:36:53,234 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
|
459 |
+
2023-11-28 10:38:20,700 [INFO] - CMC data script execution completed.
|
460 |
+
2023-11-28 10:38:20,701 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
|
461 |
+
2023-11-28 10:38:41,968 [INFO] - CMC data script execution completed.
|
462 |
+
2023-11-28 10:38:41,969 [INFO] - Function fetch_and_process_cmc_data executed in 0.51 seconds
|
463 |
+
2023-11-28 10:41:41,771 [INFO] - CMC data script execution completed.
|
464 |
+
2023-11-28 10:41:41,772 [INFO] - Function fetch_and_process_cmc_data executed in 0.23 seconds
|
465 |
+
2023-11-28 10:43:09,822 [INFO] - CMC data script execution completed.
|
466 |
+
2023-11-28 10:43:09,824 [INFO] - Function fetch_and_process_cmc_data executed in 0.80 seconds
|
467 |
+
2023-11-28 10:43:30,480 [INFO] - CMC data script execution completed.
|
468 |
+
2023-11-28 10:43:30,482 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
|
469 |
+
2023-11-28 10:44:58,815 [INFO] - CMC data script execution completed.
|
470 |
+
2023-11-28 10:44:58,816 [INFO] - Function fetch_and_process_cmc_data executed in 0.32 seconds
|
471 |
+
2023-11-28 10:47:21,447 [INFO] - CMC data script execution completed.
|
472 |
+
2023-11-28 10:47:21,449 [INFO] - Function fetch_and_process_cmc_data executed in 0.49 seconds
|
473 |
+
2023-11-28 10:52:10,034 [INFO] - CMC data script execution completed.
|
474 |
+
2023-11-28 10:52:10,035 [INFO] - Function fetch_and_process_cmc_data executed in 0.26 seconds
|
475 |
+
2023-11-28 10:56:58,591 [INFO] - CMC data script execution completed.
|
476 |
+
2023-11-28 10:56:58,592 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
|
477 |
+
2023-11-28 11:01:47,106 [INFO] - CMC data script execution completed.
|
478 |
+
2023-11-28 11:01:47,107 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
|
479 |
+
2023-11-28 11:06:35,611 [INFO] - CMC data script execution completed.
|
480 |
+
2023-11-28 11:06:35,612 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
|
481 |
+
2023-11-28 11:07:40,264 [INFO] - CMC data script execution completed.
|
482 |
+
2023-11-28 11:07:40,266 [INFO] - Function fetch_and_process_cmc_data executed in 0.29 seconds
|
483 |
+
2023-11-28 11:09:39,426 [ERROR] - Error while fetching data from https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest: HTTPSConnectionPool(host='pro-api.coinmarketcap.com', port=443): Max retries exceeded with url: /v1/cryptocurrency/listings/latest?start=1&limit=100&convert=USD (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7fc49cbd3650>: Failed to resolve 'pro-api.coinmarketcap.com' ([Errno -3] Temporary failure in name resolution)"))
|
484 |
+
2023-11-28 11:09:39,426 [INFO] - Function fetch_and_process_cmc_data executed in 10.01 seconds
|
485 |
+
2023-11-28 11:11:46,897 [ERROR] - Error while fetching data from https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest: HTTPSConnectionPool(host='pro-api.coinmarketcap.com', port=443): Max retries exceeded with url: /v1/cryptocurrency/listings/latest?start=1&limit=100&convert=USD (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f90ef296250>: Failed to resolve 'pro-api.coinmarketcap.com' ([Errno -3] Temporary failure in name resolution)"))
|
486 |
+
2023-11-28 11:11:46,897 [INFO] - Function fetch_and_process_cmc_data executed in 10.01 seconds
|
487 |
+
2023-11-28 11:13:43,052 [ERROR] - Error while fetching data from https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest: HTTPSConnectionPool(host='pro-api.coinmarketcap.com', port=443): Max retries exceeded with url: /v1/cryptocurrency/listings/latest?start=1&limit=100&convert=USD (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f07f5f9fb90>: Failed to resolve 'pro-api.coinmarketcap.com' ([Errno -3] Temporary failure in name resolution)"))
|
488 |
+
2023-11-28 11:13:43,052 [INFO] - Function fetch_and_process_cmc_data executed in 10.01 seconds
|
489 |
+
2023-11-28 11:14:37,758 [ERROR] - Error while fetching data from https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest: HTTPSConnectionPool(host='pro-api.coinmarketcap.com', port=443): Max retries exceeded with url: /v1/cryptocurrency/listings/latest?start=1&limit=100&convert=USD (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7fdb32cd6a50>: Failed to resolve 'pro-api.coinmarketcap.com' ([Errno -3] Temporary failure in name resolution)"))
|
490 |
+
2023-11-28 11:14:37,758 [INFO] - Function fetch_and_process_cmc_data executed in 10.01 seconds
|
491 |
+
2023-11-28 11:16:35,556 [INFO] - CMC data script execution completed.
|
492 |
+
2023-11-28 11:16:35,557 [INFO] - Function fetch_and_process_cmc_data executed in 0.31 seconds
|
493 |
+
2023-11-28 11:18:31,730 [INFO] - CMC data script execution completed.
|
494 |
+
2023-11-28 11:18:31,731 [INFO] - Function fetch_and_process_cmc_data executed in 0.31 seconds
|
495 |
+
2023-11-28 11:19:26,248 [INFO] - CMC data script execution completed.
|
496 |
+
2023-11-28 11:19:26,249 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
|
497 |
+
2023-11-28 11:21:24,060 [INFO] - CMC data script execution completed.
|
498 |
+
2023-11-28 11:21:24,061 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
|
499 |
+
2023-11-28 11:23:20,350 [INFO] - CMC data script execution completed.
|
500 |
+
2023-11-28 11:23:20,352 [INFO] - Function fetch_and_process_cmc_data executed in 0.33 seconds
|
501 |
+
2023-11-28 11:24:14,814 [INFO] - CMC data script execution completed.
|
502 |
+
2023-11-28 11:24:14,815 [INFO] - Function fetch_and_process_cmc_data executed in 0.27 seconds
|
503 |
+
2023-11-28 11:26:12,552 [INFO] - CMC data script execution completed.
|
504 |
+
2023-11-28 11:26:12,553 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
|
505 |
+
2023-11-28 11:28:08,878 [INFO] - CMC data script execution completed.
|
506 |
+
2023-11-28 11:28:08,879 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
|
507 |
+
2023-11-28 11:29:03,395 [INFO] - CMC data script execution completed.
|
508 |
+
2023-11-28 11:29:03,396 [INFO] - Function fetch_and_process_cmc_data executed in 0.33 seconds
|
509 |
+
2023-11-28 11:31:01,093 [INFO] - CMC data script execution completed.
|
510 |
+
2023-11-28 11:31:01,094 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
|
511 |
+
2023-11-28 11:31:55,758 [INFO] - CMC data script execution completed.
|
512 |
+
2023-11-28 11:31:55,760 [INFO] - Function fetch_and_process_cmc_data executed in 0.27 seconds
|
513 |
+
2023-11-28 11:33:16,503 [INFO] - CMC data script execution completed.
|
514 |
+
2023-11-28 11:33:16,505 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
|
515 |
+
2023-11-28 11:38:31,661 [INFO] - CMC data script execution completed.
|
516 |
+
2023-11-28 11:38:31,662 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
|
517 |
+
2023-11-28 11:41:56,517 [INFO] - CMC data script execution completed.
|
518 |
+
2023-11-28 11:41:56,518 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
|
519 |
+
2023-11-28 11:42:08,632 [INFO] - CMC data script execution completed.
|
520 |
+
2023-11-28 11:42:08,633 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
|
521 |
+
2023-11-28 11:43:43,468 [INFO] - CMC data script execution completed.
|
522 |
+
2023-11-28 11:43:43,470 [INFO] - Function fetch_and_process_cmc_data executed in 0.27 seconds
|
523 |
+
2023-11-28 11:48:32,034 [INFO] - CMC data script execution completed.
|
524 |
+
2023-11-28 11:48:32,035 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
|
525 |
+
2023-11-28 11:53:20,611 [INFO] - CMC data script execution completed.
|
526 |
+
2023-11-28 11:53:20,612 [INFO] - Function fetch_and_process_cmc_data executed in 0.33 seconds
|
527 |
+
2023-11-28 11:57:15,865 [INFO] - CMC data script execution completed.
|
528 |
+
2023-11-28 11:57:15,866 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
|
529 |
+
2023-11-28 11:58:10,401 [INFO] - CMC data script execution completed.
|
530 |
+
2023-11-28 11:58:10,403 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
|
531 |
+
2023-11-28 12:05:41,082 [INFO] - CMC data script execution completed.
|
532 |
+
2023-11-28 12:05:41,083 [INFO] - Function fetch_and_process_cmc_data executed in 0.54 seconds
|
533 |
+
2023-11-28 12:06:18,449 [INFO] - CMC data script execution completed.
|
534 |
+
2023-11-28 12:06:18,450 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
|
535 |
+
2023-11-28 12:08:03,421 [INFO] - CMC data script execution completed.
|
536 |
+
2023-11-28 12:08:03,422 [INFO] - Function fetch_and_process_cmc_data executed in 0.35 seconds
|
537 |
+
2023-11-28 12:11:07,111 [INFO] - CMC data script execution completed.
|
538 |
+
2023-11-28 12:11:07,112 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
|
539 |
+
2023-11-28 12:12:51,988 [INFO] - CMC data script execution completed.
|
540 |
+
2023-11-28 12:12:51,989 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
|
541 |
+
2023-11-28 12:15:55,603 [INFO] - CMC data script execution completed.
|
542 |
+
2023-11-28 12:15:55,604 [INFO] - Function fetch_and_process_cmc_data executed in 0.25 seconds
|
543 |
+
2023-11-28 12:17:40,504 [INFO] - CMC data script execution completed.
|
544 |
+
2023-11-28 12:17:40,505 [INFO] - Function fetch_and_process_cmc_data executed in 0.26 seconds
|
545 |
+
2023-11-28 12:18:14,263 [INFO] - CMC data script execution completed.
|
546 |
+
2023-11-28 12:18:14,264 [INFO] - Function fetch_and_process_cmc_data executed in 0.24 seconds
|
547 |
+
2023-11-28 12:23:02,901 [INFO] - CMC data script execution completed.
|
548 |
+
2023-11-28 12:23:02,902 [INFO] - Function fetch_and_process_cmc_data executed in 0.33 seconds
|
549 |
+
2023-11-28 13:10:39,209 [INFO] - CMC data script execution completed.
|
550 |
+
2023-11-28 13:10:39,210 [INFO] - Function fetch_and_process_cmc_data executed in 0.28 seconds
|
551 |
+
2023-11-28 13:12:08,803 [INFO] - CMC data script execution completed.
|
552 |
+
2023-11-28 13:12:08,804 [INFO] - Function fetch_and_process_cmc_data executed in 0.44 seconds
|
553 |
+
2023-11-28 13:16:57,350 [INFO] - CMC data script execution completed.
|
554 |
+
2023-11-28 13:16:57,351 [INFO] - Function fetch_and_process_cmc_data executed in 0.27 seconds
|
555 |
+
2023-11-28 13:22:25,021 [INFO] - CMC data script execution completed.
|
556 |
+
2023-11-28 13:22:25,022 [INFO] - Function fetch_and_process_cmc_data executed in 0.26 seconds
|
logs/scrapping/etherscan_scrap.log
CHANGED
@@ -343,3 +343,65 @@
|
|
343 |
2023-11-28 01:59:52,774 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv
|
344 |
2023-11-28 01:59:52,774 [INFO] - Etherscan scraping script execution completed.
|
345 |
2023-11-28 01:59:52,774 [INFO] - Function fetch_and_update_etherscan executed in 21.97 seconds
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
343 |
2023-11-28 01:59:52,774 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv
|
344 |
2023-11-28 01:59:52,774 [INFO] - Etherscan scraping script execution completed.
|
345 |
2023-11-28 01:59:52,774 [INFO] - Function fetch_and_update_etherscan executed in 21.97 seconds
|
346 |
+
2023-11-28 10:33:33,310 [ERROR] - Invalid data format for transactions: Max rate limit reached
|
347 |
+
2023-11-28 10:33:33,310 [ERROR] - 'timeStamp' key not found in the response data.
|
348 |
+
2023-11-28 10:33:54,267 [ERROR] - Invalid data format for transactions: Max rate limit reached
|
349 |
+
2023-11-28 10:33:54,268 [ERROR] - 'timeStamp' key not found in the response data.
|
350 |
+
2023-11-28 10:37:14,138 [INFO] - Created files:
|
351 |
+
2023-11-28 10:37:14,138 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv
|
352 |
+
2023-11-28 10:37:14,138 [INFO] - Etherscan scraping script execution completed.
|
353 |
+
2023-11-28 10:37:14,138 [INFO] - Function fetch_and_update_etherscan executed in 21.15 seconds
|
354 |
+
2023-11-28 10:44:59,904 [ERROR] - Invalid data format for transactions: Max rate limit reached
|
355 |
+
2023-11-28 10:44:59,904 [ERROR] - 'timeStamp' key not found in the response data.
|
356 |
+
2023-11-28 10:47:12,849 [INFO] - Created files: output/transactions_COPI.csv
|
357 |
+
2023-11-28 10:47:12,849 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv
|
358 |
+
2023-11-28 10:47:12,849 [INFO] - Etherscan scraping script execution completed.
|
359 |
+
2023-11-28 10:47:12,849 [INFO] - Function fetch_and_update_etherscan executed in 22.67 seconds
|
360 |
+
2023-11-28 10:47:25,889 [ERROR] - Invalid data format for transactions: Max rate limit reached
|
361 |
+
2023-11-28 10:47:25,889 [ERROR] - 'timeStamp' key not found in the response data.
|
362 |
+
2023-11-28 11:07:41,378 [ERROR] - Invalid data format for transactions: Max rate limit reached
|
363 |
+
2023-11-28 11:07:41,378 [ERROR] - 'timeStamp' key not found in the response data.
|
364 |
+
2023-11-28 11:31:56,906 [ERROR] - Invalid data format for transactions: Max rate limit reached
|
365 |
+
2023-11-28 11:31:56,906 [ERROR] - 'timeStamp' key not found in the response data.
|
366 |
+
2023-11-28 11:33:17,681 [ERROR] - Invalid data format for transactions: Max rate limit reached
|
367 |
+
2023-11-28 11:33:17,682 [ERROR] - 'timeStamp' key not found in the response data.
|
368 |
+
2023-11-28 11:38:55,405 [INFO] - Created files:
|
369 |
+
2023-11-28 11:38:55,405 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
|
370 |
+
2023-11-28 11:38:55,405 [INFO] - Etherscan scraping script execution completed.
|
371 |
+
2023-11-28 11:38:55,405 [INFO] - Function fetch_and_update_etherscan executed in 24.05 seconds
|
372 |
+
2023-11-28 11:41:57,687 [ERROR] - Invalid data format for transactions: Max rate limit reached
|
373 |
+
2023-11-28 11:41:57,687 [ERROR] - 'timeStamp' key not found in the response data.
|
374 |
+
2023-11-28 11:44:09,146 [INFO] - Created files:
|
375 |
+
2023-11-28 11:44:09,146 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
|
376 |
+
2023-11-28 11:44:09,146 [INFO] - Etherscan scraping script execution completed.
|
377 |
+
2023-11-28 11:44:09,146 [INFO] - Function fetch_and_update_etherscan executed in 25.95 seconds
|
378 |
+
2023-11-28 11:57:37,072 [INFO] - Created files:
|
379 |
+
2023-11-28 11:57:37,072 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
|
380 |
+
2023-11-28 11:57:37,072 [INFO] - Etherscan scraping script execution completed.
|
381 |
+
2023-11-28 11:57:37,072 [INFO] - Function fetch_and_update_etherscan executed in 21.48 seconds
|
382 |
+
2023-11-28 11:58:41,148 [INFO] - Created files:
|
383 |
+
2023-11-28 11:58:41,148 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
|
384 |
+
2023-11-28 11:58:41,148 [INFO] - Etherscan scraping script execution completed.
|
385 |
+
2023-11-28 11:58:41,148 [INFO] - Function fetch_and_update_etherscan executed in 31.03 seconds
|
386 |
+
2023-11-28 12:06:03,296 [INFO] - Created files:
|
387 |
+
2023-11-28 12:06:03,297 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
|
388 |
+
2023-11-28 12:06:03,297 [INFO] - Etherscan scraping script execution completed.
|
389 |
+
2023-11-28 12:06:03,297 [INFO] - Function fetch_and_update_etherscan executed in 22.72 seconds
|
390 |
+
2023-11-28 12:06:46,032 [INFO] - Created files:
|
391 |
+
2023-11-28 12:06:46,032 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
|
392 |
+
2023-11-28 12:06:46,033 [INFO] - Etherscan scraping script execution completed.
|
393 |
+
2023-11-28 12:06:46,033 [INFO] - Function fetch_and_update_etherscan executed in 27.85 seconds
|
394 |
+
2023-11-28 12:08:04,502 [ERROR] - Invalid data format for transactions: Max rate limit reached
|
395 |
+
2023-11-28 12:08:04,502 [ERROR] - 'timeStamp' key not found in the response data.
|
396 |
+
2023-11-28 12:18:34,929 [INFO] - Created files:
|
397 |
+
2023-11-28 12:18:34,929 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
|
398 |
+
2023-11-28 12:18:34,929 [INFO] - Etherscan scraping script execution completed.
|
399 |
+
2023-11-28 12:18:34,929 [INFO] - Function fetch_and_update_etherscan executed in 20.92 seconds
|
400 |
+
2023-11-28 13:10:40,360 [ERROR] - Invalid data format for transactions: Max rate limit reached
|
401 |
+
2023-11-28 13:10:40,361 [ERROR] - 'timeStamp' key not found in the response data.
|
402 |
+
2023-11-28 13:12:10,042 [ERROR] - Invalid data format for transactions: Max rate limit reached
|
403 |
+
2023-11-28 13:12:10,042 [ERROR] - 'timeStamp' key not found in the response data.
|
404 |
+
2023-11-28 13:22:24,524 [INFO] - Created files:
|
405 |
+
2023-11-28 13:22:24,524 [INFO] - Updated files: output/transactions_APE.csv, output/transactions_AXIE.csv, output/transactions_GALA.csv, output/transactions_MANA.csv, output/transactions_PET.csv, output/transactions_WEAOPON.csv, output/transactions_COPI.csv
|
406 |
+
2023-11-28 13:22:24,524 [INFO] - Etherscan scraping script execution completed.
|
407 |
+
2023-11-28 13:22:24,524 [INFO] - Function fetch_and_update_etherscan executed in 20.44 seconds
|
logs/scrapping/greed_fear_index.log
CHANGED
@@ -21,3 +21,24 @@
|
|
21 |
2023-11-28 01:58:46,004 [INFO] - Greed and Fear index data fetched successfully.
|
22 |
2023-11-28 01:59:11,591 [INFO] - Greed and Fear index data fetched successfully.
|
23 |
2023-11-28 01:59:31,101 [INFO] - Greed and Fear index data fetched successfully.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
2023-11-28 01:58:46,004 [INFO] - Greed and Fear index data fetched successfully.
|
22 |
2023-11-28 01:59:11,591 [INFO] - Greed and Fear index data fetched successfully.
|
23 |
2023-11-28 01:59:31,101 [INFO] - Greed and Fear index data fetched successfully.
|
24 |
+
2023-11-28 10:33:32,146 [INFO] - Greed and Fear index data fetched successfully.
|
25 |
+
2023-11-28 10:33:53,293 [INFO] - Greed and Fear index data fetched successfully.
|
26 |
+
2023-11-28 10:36:53,240 [INFO] - Greed and Fear index data fetched successfully.
|
27 |
+
2023-11-28 10:44:58,843 [INFO] - Greed and Fear index data fetched successfully.
|
28 |
+
2023-11-28 10:47:21,495 [INFO] - Greed and Fear index data fetched successfully.
|
29 |
+
2023-11-28 11:07:40,243 [INFO] - Greed and Fear index data fetched successfully.
|
30 |
+
2023-11-28 11:31:55,778 [INFO] - Greed and Fear index data fetched successfully.
|
31 |
+
2023-11-28 11:33:16,553 [INFO] - Greed and Fear index data fetched successfully.
|
32 |
+
2023-11-28 11:38:31,948 [INFO] - Greed and Fear index data fetched successfully.
|
33 |
+
2023-11-28 11:41:56,556 [INFO] - Greed and Fear index data fetched successfully.
|
34 |
+
2023-11-28 11:42:08,720 [INFO] - Greed and Fear index data fetched successfully.
|
35 |
+
2023-11-28 11:43:43,570 [INFO] - Greed and Fear index data fetched successfully.
|
36 |
+
2023-11-28 11:57:15,928 [INFO] - Greed and Fear index data fetched successfully.
|
37 |
+
2023-11-28 11:58:10,485 [INFO] - Greed and Fear index data fetched successfully.
|
38 |
+
2023-11-28 12:05:40,844 [INFO] - Greed and Fear index data fetched successfully.
|
39 |
+
2023-11-28 12:06:19,435 [INFO] - Greed and Fear index data fetched successfully.
|
40 |
+
2023-11-28 12:08:03,445 [INFO] - Greed and Fear index data fetched successfully.
|
41 |
+
2023-11-28 12:18:14,299 [INFO] - Greed and Fear index data fetched successfully.
|
42 |
+
2023-11-28 13:10:39,386 [INFO] - Greed and Fear index data fetched successfully.
|
43 |
+
2023-11-28 13:12:08,710 [INFO] - Greed and Fear index data fetched successfully.
|
44 |
+
2023-11-28 13:22:26,672 [INFO] - Greed and Fear index data fetched successfully.
|
logs/streamlit/front.log
CHANGED
@@ -673,3 +673,267 @@
|
|
673 |
2023-11-28 01:59:32,265 [INFO] - Etherscan scraping completed
|
674 |
2023-11-28 01:59:52,816 [INFO] - Etherscan scraping completed
|
675 |
2023-11-28 01:59:54,340 [INFO] - CMC scraping completed
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
673 |
2023-11-28 01:59:32,265 [INFO] - Etherscan scraping completed
|
674 |
2023-11-28 01:59:52,816 [INFO] - Etherscan scraping completed
|
675 |
2023-11-28 01:59:54,340 [INFO] - CMC scraping completed
|
676 |
+
2023-11-28 10:33:31,304 [INFO] - Streamlit app has started
|
677 |
+
2023-11-28 10:33:31,944 [INFO] - Balances uploaded, shape of dataframe is (4, 2)
|
678 |
+
2023-11-28 10:33:32,092 [INFO] - Global metrics scraping completed
|
679 |
+
2023-11-28 10:33:32,170 [INFO] - CMC scraping completed
|
680 |
+
2023-11-28 10:33:32,223 [INFO] - Greed and Fear index scraping completed
|
681 |
+
2023-11-28 10:33:32,419 [INFO] - Influencers balance scraping completed
|
682 |
+
2023-11-28 10:33:33,368 [INFO] - Etherscan scraping completed
|
683 |
+
2023-11-28 10:33:42,956 [INFO] - Token balances scraping completed
|
684 |
+
2023-11-28 10:33:52,392 [INFO] - Streamlit app has started
|
685 |
+
2023-11-28 10:33:52,595 [INFO] - Balances uploaded, shape of dataframe is (4, 2)
|
686 |
+
2023-11-28 10:33:53,119 [INFO] - Global metrics scraping completed
|
687 |
+
2023-11-28 10:33:53,251 [INFO] - CMC scraping completed
|
688 |
+
2023-11-28 10:33:53,346 [INFO] - Greed and Fear index scraping completed
|
689 |
+
2023-11-28 10:33:53,430 [INFO] - Influencers balance scraping completed
|
690 |
+
2023-11-28 10:33:54,322 [INFO] - Etherscan scraping completed
|
691 |
+
2023-11-28 10:34:04,113 [INFO] - Token balances scraping completed
|
692 |
+
2023-11-28 10:36:52,468 [INFO] - Streamlit app has started
|
693 |
+
2023-11-28 10:36:52,686 [INFO] - Balances uploaded, shape of dataframe is (4, 2)
|
694 |
+
2023-11-28 10:36:53,215 [INFO] - Global metrics scraping completed
|
695 |
+
2023-11-28 10:36:53,303 [INFO] - Greed and Fear index scraping completed
|
696 |
+
2023-11-28 10:36:53,304 [INFO] - CMC scraping completed
|
697 |
+
2023-11-28 10:36:53,509 [INFO] - Influencers balance scraping completed
|
698 |
+
2023-11-28 10:37:04,672 [INFO] - Token balances scraping completed
|
699 |
+
2023-11-28 10:37:14,173 [INFO] - Etherscan scraping completed
|
700 |
+
2023-11-28 10:38:20,767 [INFO] - CMC scraping completed
|
701 |
+
2023-11-28 10:38:20,928 [INFO] - Influencers balance scraping completed
|
702 |
+
2023-11-28 10:38:41,875 [INFO] - Influencers balance scraping completed
|
703 |
+
2023-11-28 10:38:42,009 [INFO] - CMC scraping completed
|
704 |
+
2023-11-28 10:41:41,814 [INFO] - CMC scraping completed
|
705 |
+
2023-11-28 10:41:42,015 [INFO] - Influencers balance scraping completed
|
706 |
+
2023-11-28 10:43:09,865 [INFO] - CMC scraping completed
|
707 |
+
2023-11-28 10:43:30,528 [INFO] - CMC scraping completed
|
708 |
+
2023-11-28 10:44:57,972 [INFO] - Streamlit app has started
|
709 |
+
2023-11-28 10:44:58,530 [INFO] - Balances uploaded, shape of dataframe is (4, 2)
|
710 |
+
2023-11-28 10:44:58,723 [INFO] - Global metrics scraping completed
|
711 |
+
2023-11-28 10:44:58,900 [INFO] - CMC scraping completed
|
712 |
+
2023-11-28 10:44:58,937 [INFO] - Greed and Fear index scraping completed
|
713 |
+
2023-11-28 10:44:59,025 [INFO] - Influencers balance scraping completed
|
714 |
+
2023-11-28 10:44:59,991 [INFO] - Etherscan scraping completed
|
715 |
+
2023-11-28 10:45:08,425 [INFO] - Token balances scraping completed
|
716 |
+
2023-11-28 10:47:20,352 [INFO] - Streamlit app has started
|
717 |
+
2023-11-28 10:47:20,977 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
718 |
+
2023-11-28 10:47:21,197 [INFO] - Global metrics scraping completed
|
719 |
+
2023-11-28 10:47:21,523 [INFO] - CMC scraping completed
|
720 |
+
2023-11-28 10:47:21,531 [INFO] - Influencers balance scraping completed
|
721 |
+
2023-11-28 10:47:21,568 [INFO] - Greed and Fear index scraping completed
|
722 |
+
2023-11-28 10:47:25,969 [INFO] - Etherscan scraping completed
|
723 |
+
2023-11-28 10:47:30,999 [INFO] - Token balances scraping completed
|
724 |
+
2023-11-28 10:52:10,018 [INFO] - Influencers balance scraping completed
|
725 |
+
2023-11-28 10:52:10,094 [INFO] - CMC scraping completed
|
726 |
+
2023-11-28 10:56:58,654 [INFO] - CMC scraping completed
|
727 |
+
2023-11-28 11:01:47,146 [INFO] - CMC scraping completed
|
728 |
+
2023-11-28 11:06:35,649 [INFO] - CMC scraping completed
|
729 |
+
2023-11-28 11:07:39,400 [INFO] - Streamlit app has started
|
730 |
+
2023-11-28 11:07:39,642 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
731 |
+
2023-11-28 11:07:40,213 [INFO] - Global metrics scraping completed
|
732 |
+
2023-11-28 11:07:40,326 [INFO] - Greed and Fear index scraping completed
|
733 |
+
2023-11-28 11:07:40,342 [INFO] - CMC scraping completed
|
734 |
+
2023-11-28 11:07:40,477 [INFO] - Influencers balance scraping completed
|
735 |
+
2023-11-28 11:07:41,454 [INFO] - Etherscan scraping completed
|
736 |
+
2023-11-28 11:07:49,803 [INFO] - Token balances scraping completed
|
737 |
+
2023-11-28 11:09:28,933 [INFO] - Streamlit app has started
|
738 |
+
2023-11-28 11:09:29,503 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
739 |
+
2023-11-28 11:09:39,494 [INFO] - Greed and Fear index scraping completed
|
740 |
+
2023-11-28 11:09:39,505 [INFO] - CMC scraping completed
|
741 |
+
2023-11-28 11:09:39,512 [INFO] - Global metrics scraping completed
|
742 |
+
2023-11-28 11:09:39,518 [INFO] - Influencers balance scraping completed
|
743 |
+
2023-11-28 11:09:39,518 [INFO] - Token balances scraping completed
|
744 |
+
2023-11-28 11:09:39,542 [INFO] - Etherscan scraping completed
|
745 |
+
2023-11-28 11:10:01,250 [INFO] - Streamlit app has started
|
746 |
+
2023-11-28 11:10:01,450 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
747 |
+
2023-11-28 11:10:03,070 [INFO] - Streamlit app has started
|
748 |
+
2023-11-28 11:10:03,256 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
749 |
+
2023-11-28 11:11:36,331 [INFO] - Streamlit app has started
|
750 |
+
2023-11-28 11:11:36,680 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
751 |
+
2023-11-28 11:11:46,974 [INFO] - Greed and Fear index scraping completed
|
752 |
+
2023-11-28 11:11:46,977 [INFO] - CMC scraping completed
|
753 |
+
2023-11-28 11:11:46,982 [INFO] - Token balances scraping completed
|
754 |
+
2023-11-28 11:11:46,983 [INFO] - Influencers balance scraping completed
|
755 |
+
2023-11-28 11:11:47,009 [INFO] - Global metrics scraping completed
|
756 |
+
2023-11-28 11:11:47,017 [INFO] - Etherscan scraping completed
|
757 |
+
2023-11-28 11:13:32,451 [INFO] - Streamlit app has started
|
758 |
+
2023-11-28 11:13:32,783 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
759 |
+
2023-11-28 11:13:43,185 [INFO] - Influencers balance scraping completed
|
760 |
+
2023-11-28 11:13:43,188 [INFO] - Greed and Fear index scraping completed
|
761 |
+
2023-11-28 11:13:43,194 [INFO] - CMC scraping completed
|
762 |
+
2023-11-28 11:13:43,195 [INFO] - Token balances scraping completed
|
763 |
+
2023-11-28 11:13:43,216 [INFO] - Global metrics scraping completed
|
764 |
+
2023-11-28 11:13:43,226 [INFO] - Etherscan scraping completed
|
765 |
+
2023-11-28 11:13:43,690 [INFO] - Streamlit app has started
|
766 |
+
2023-11-28 11:13:43,879 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
767 |
+
2023-11-28 11:13:45,536 [INFO] - Streamlit app has started
|
768 |
+
2023-11-28 11:13:45,748 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
769 |
+
2023-11-28 11:14:37,809 [INFO] - CMC scraping completed
|
770 |
+
2023-11-28 11:14:37,815 [INFO] - Influencers balance scraping completed
|
771 |
+
2023-11-28 11:16:35,607 [INFO] - CMC scraping completed
|
772 |
+
2023-11-28 11:16:35,810 [INFO] - Influencers balance scraping completed
|
773 |
+
2023-11-28 11:18:31,768 [INFO] - CMC scraping completed
|
774 |
+
2023-11-28 11:18:31,967 [INFO] - Influencers balance scraping completed
|
775 |
+
2023-11-28 11:19:26,289 [INFO] - CMC scraping completed
|
776 |
+
2023-11-28 11:21:24,099 [INFO] - CMC scraping completed
|
777 |
+
2023-11-28 11:23:20,427 [INFO] - CMC scraping completed
|
778 |
+
2023-11-28 11:24:14,863 [INFO] - CMC scraping completed
|
779 |
+
2023-11-28 11:26:12,605 [INFO] - CMC scraping completed
|
780 |
+
2023-11-28 11:28:08,923 [INFO] - CMC scraping completed
|
781 |
+
2023-11-28 11:29:03,434 [INFO] - CMC scraping completed
|
782 |
+
2023-11-28 11:31:01,135 [INFO] - CMC scraping completed
|
783 |
+
2023-11-28 11:31:54,938 [INFO] - Streamlit app has started
|
784 |
+
2023-11-28 11:31:55,541 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
785 |
+
2023-11-28 11:31:55,713 [INFO] - Global metrics scraping completed
|
786 |
+
2023-11-28 11:31:55,859 [INFO] - CMC scraping completed
|
787 |
+
2023-11-28 11:31:55,877 [INFO] - Greed and Fear index scraping completed
|
788 |
+
2023-11-28 11:31:56,011 [INFO] - Influencers balance scraping completed
|
789 |
+
2023-11-28 11:31:56,994 [INFO] - Etherscan scraping completed
|
790 |
+
2023-11-28 11:32:05,297 [INFO] - Token balances scraping completed
|
791 |
+
2023-11-28 11:33:15,762 [INFO] - Streamlit app has started
|
792 |
+
2023-11-28 11:33:16,303 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
793 |
+
2023-11-28 11:33:16,318 [WARNING] - Wallet interactions file not found.
|
794 |
+
2023-11-28 11:33:16,492 [INFO] - Global metrics scraping completed
|
795 |
+
2023-11-28 11:33:16,571 [INFO] - CMC scraping completed
|
796 |
+
2023-11-28 11:33:16,616 [INFO] - Greed and Fear index scraping completed
|
797 |
+
2023-11-28 11:33:16,782 [INFO] - Influencers balance scraping completed
|
798 |
+
2023-11-28 11:33:17,726 [INFO] - Etherscan scraping completed
|
799 |
+
2023-11-28 11:33:26,028 [INFO] - Token balances scraping completed
|
800 |
+
2023-11-28 11:38:30,855 [INFO] - Streamlit app has started
|
801 |
+
2023-11-28 11:38:31,485 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
802 |
+
2023-11-28 11:38:31,506 [WARNING] - Wallet interactions file not found.
|
803 |
+
2023-11-28 11:38:31,626 [INFO] - Global metrics scraping completed
|
804 |
+
2023-11-28 11:38:31,756 [INFO] - CMC scraping completed
|
805 |
+
2023-11-28 11:38:31,956 [INFO] - Influencers balance scraping completed
|
806 |
+
2023-11-28 11:38:32,039 [INFO] - Greed and Fear index scraping completed
|
807 |
+
2023-11-28 11:38:45,284 [INFO] - Token balances scraping completed
|
808 |
+
2023-11-28 11:38:55,442 [INFO] - Etherscan scraping completed
|
809 |
+
2023-11-28 11:41:55,758 [INFO] - Streamlit app has started
|
810 |
+
2023-11-28 11:41:56,042 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
811 |
+
2023-11-28 11:41:56,500 [INFO] - Global metrics scraping completed
|
812 |
+
2023-11-28 11:41:56,585 [INFO] - CMC scraping completed
|
813 |
+
2023-11-28 11:41:56,619 [INFO] - Greed and Fear index scraping completed
|
814 |
+
2023-11-28 11:41:56,844 [INFO] - Influencers balance scraping completed
|
815 |
+
2023-11-28 11:41:57,729 [INFO] - Etherscan scraping completed
|
816 |
+
2023-11-28 11:42:04,997 [INFO] - Token balances scraping completed
|
817 |
+
2023-11-28 11:42:07,900 [INFO] - Streamlit app has started
|
818 |
+
2023-11-28 11:42:08,497 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
819 |
+
2023-11-28 11:42:08,646 [INFO] - Global metrics scraping completed
|
820 |
+
2023-11-28 11:42:08,703 [INFO] - CMC scraping completed
|
821 |
+
2023-11-28 11:42:08,778 [INFO] - Greed and Fear index scraping completed
|
822 |
+
2023-11-28 11:42:08,929 [INFO] - Influencers balance scraping completed
|
823 |
+
2023-11-28 11:42:11,373 [INFO] - Streamlit app has started
|
824 |
+
2023-11-28 11:42:11,538 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
825 |
+
2023-11-28 11:42:14,771 [INFO] - Token balances scraping completed
|
826 |
+
2023-11-28 11:42:14,775 [INFO] - Etherscan scraping completed
|
827 |
+
2023-11-28 11:43:42,678 [INFO] - Streamlit app has started
|
828 |
+
2023-11-28 11:43:43,257 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
829 |
+
2023-11-28 11:43:43,449 [INFO] - Global metrics scraping completed
|
830 |
+
2023-11-28 11:43:43,570 [INFO] - CMC scraping completed
|
831 |
+
2023-11-28 11:43:43,659 [INFO] - Greed and Fear index scraping completed
|
832 |
+
2023-11-28 11:43:43,768 [INFO] - Influencers balance scraping completed
|
833 |
+
2023-11-28 11:43:57,879 [INFO] - Token balances scraping completed
|
834 |
+
2023-11-28 11:44:09,187 [INFO] - Etherscan scraping completed
|
835 |
+
2023-11-28 11:48:32,077 [INFO] - CMC scraping completed
|
836 |
+
2023-11-28 11:48:32,201 [INFO] - Influencers balance scraping completed
|
837 |
+
2023-11-28 11:53:20,650 [INFO] - CMC scraping completed
|
838 |
+
2023-11-28 11:57:15,074 [INFO] - Streamlit app has started
|
839 |
+
2023-11-28 11:57:15,658 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
840 |
+
2023-11-28 11:57:15,800 [INFO] - Global metrics scraping completed
|
841 |
+
2023-11-28 11:57:15,990 [INFO] - CMC scraping completed
|
842 |
+
2023-11-28 11:57:16,016 [INFO] - Greed and Fear index scraping completed
|
843 |
+
2023-11-28 11:57:16,111 [INFO] - Influencers balance scraping completed
|
844 |
+
2023-11-28 11:57:33,870 [INFO] - Token balances scraping completed
|
845 |
+
2023-11-28 11:57:37,125 [INFO] - Etherscan scraping completed
|
846 |
+
2023-11-28 11:58:09,595 [INFO] - Streamlit app has started
|
847 |
+
2023-11-28 11:58:10,203 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
848 |
+
2023-11-28 11:58:10,368 [INFO] - Global metrics scraping completed
|
849 |
+
2023-11-28 11:58:10,480 [INFO] - CMC scraping completed
|
850 |
+
2023-11-28 11:58:10,560 [INFO] - Greed and Fear index scraping completed
|
851 |
+
2023-11-28 11:58:10,701 [INFO] - Influencers balance scraping completed
|
852 |
+
2023-11-28 11:58:26,071 [INFO] - Token balances scraping completed
|
853 |
+
2023-11-28 11:58:41,198 [INFO] - Etherscan scraping completed
|
854 |
+
2023-11-28 12:05:40,063 [INFO] - Streamlit app has started
|
855 |
+
2023-11-28 12:05:40,618 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
856 |
+
2023-11-28 12:05:40,781 [INFO] - Global metrics scraping completed
|
857 |
+
2023-11-28 12:05:40,923 [INFO] - Greed and Fear index scraping completed
|
858 |
+
2023-11-28 12:05:41,107 [INFO] - Influencers balance scraping completed
|
859 |
+
2023-11-28 12:05:41,152 [INFO] - CMC scraping completed
|
860 |
+
2023-11-28 12:05:50,285 [INFO] - Token balances scraping completed
|
861 |
+
2023-11-28 12:06:03,333 [INFO] - Etherscan scraping completed
|
862 |
+
2023-11-28 12:06:17,658 [INFO] - Streamlit app has started
|
863 |
+
2023-11-28 12:06:18,235 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
864 |
+
2023-11-28 12:06:18,587 [INFO] - CMC scraping completed
|
865 |
+
2023-11-28 12:06:18,622 [INFO] - Global metrics scraping completed
|
866 |
+
2023-11-28 12:06:18,773 [INFO] - Influencers balance scraping completed
|
867 |
+
2023-11-28 12:06:19,470 [INFO] - Greed and Fear index scraping completed
|
868 |
+
2023-11-28 12:06:28,837 [INFO] - Token balances scraping completed
|
869 |
+
2023-11-28 12:06:46,069 [INFO] - Etherscan scraping completed
|
870 |
+
2023-11-28 12:08:02,516 [INFO] - Streamlit app has started
|
871 |
+
2023-11-28 12:08:02,791 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
872 |
+
2023-11-28 12:08:03,294 [INFO] - Global metrics scraping completed
|
873 |
+
2023-11-28 12:08:03,507 [INFO] - CMC scraping completed
|
874 |
+
2023-11-28 12:08:03,549 [INFO] - Greed and Fear index scraping completed
|
875 |
+
2023-11-28 12:08:03,614 [INFO] - Influencers balance scraping completed
|
876 |
+
2023-11-28 12:08:04,554 [INFO] - Etherscan scraping completed
|
877 |
+
2023-11-28 12:08:12,880 [INFO] - Token balances scraping completed
|
878 |
+
2023-11-28 12:11:07,154 [INFO] - CMC scraping completed
|
879 |
+
2023-11-28 12:11:07,427 [INFO] - Influencers balance scraping completed
|
880 |
+
2023-11-28 12:12:52,039 [INFO] - Influencers balance scraping completed
|
881 |
+
2023-11-28 12:12:52,039 [INFO] - CMC scraping completed
|
882 |
+
2023-11-28 12:15:55,641 [INFO] - CMC scraping completed
|
883 |
+
2023-11-28 12:17:40,543 [INFO] - CMC scraping completed
|
884 |
+
2023-11-28 12:18:13,441 [INFO] - Streamlit app has started
|
885 |
+
2023-11-28 12:18:14,059 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
886 |
+
2023-11-28 12:18:14,249 [INFO] - Global metrics scraping completed
|
887 |
+
2023-11-28 12:18:14,352 [INFO] - CMC scraping completed
|
888 |
+
2023-11-28 12:18:14,396 [INFO] - Greed and Fear index scraping completed
|
889 |
+
2023-11-28 12:18:14,527 [INFO] - Influencers balance scraping completed
|
890 |
+
2023-11-28 12:18:25,177 [INFO] - Token balances scraping completed
|
891 |
+
2023-11-28 12:18:34,978 [INFO] - Etherscan scraping completed
|
892 |
+
2023-11-28 12:23:02,938 [INFO] - CMC scraping completed
|
893 |
+
2023-11-28 12:23:03,024 [INFO] - Influencers balance scraping completed
|
894 |
+
2023-11-28 13:10:38,358 [INFO] - Streamlit app has started
|
895 |
+
2023-11-28 13:10:39,038 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
896 |
+
2023-11-28 13:10:39,179 [INFO] - Global metrics scraping completed
|
897 |
+
2023-11-28 13:10:39,286 [INFO] - CMC scraping completed
|
898 |
+
2023-11-28 13:10:39,461 [INFO] - Greed and Fear index scraping completed
|
899 |
+
2023-11-28 13:10:39,471 [INFO] - Influencers balance scraping completed
|
900 |
+
2023-11-28 13:10:40,423 [INFO] - Etherscan scraping completed
|
901 |
+
2023-11-28 13:10:49,824 [INFO] - Token balances scraping completed
|
902 |
+
2023-11-28 13:12:07,786 [INFO] - Streamlit app has started
|
903 |
+
2023-11-28 13:12:08,380 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
904 |
+
2023-11-28 13:12:08,544 [INFO] - Global metrics scraping completed
|
905 |
+
2023-11-28 13:12:08,770 [INFO] - Greed and Fear index scraping completed
|
906 |
+
2023-11-28 13:12:08,867 [INFO] - CMC scraping completed
|
907 |
+
2023-11-28 13:12:09,173 [INFO] - Influencers balance scraping completed
|
908 |
+
2023-11-28 13:12:10,086 [INFO] - Etherscan scraping completed
|
909 |
+
2023-11-28 13:12:19,423 [INFO] - Token balances scraping completed
|
910 |
+
2023-11-28 13:16:57,314 [INFO] - Influencers balance scraping completed
|
911 |
+
2023-11-28 13:16:57,399 [INFO] - CMC scraping completed
|
912 |
+
2023-11-28 13:19:41,896 [INFO] - Streamlit app has started
|
913 |
+
2023-11-28 13:19:42,325 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
914 |
+
2023-11-28 13:19:49,733 [INFO] - Streamlit app has started
|
915 |
+
2023-11-28 13:19:49,920 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
916 |
+
2023-11-28 13:19:52,110 [INFO] - Streamlit app has started
|
917 |
+
2023-11-28 13:19:52,289 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
918 |
+
2023-11-28 13:20:35,829 [INFO] - Streamlit app has started
|
919 |
+
2023-11-28 13:20:36,023 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
920 |
+
2023-11-28 13:21:04,545 [INFO] - Streamlit app has started
|
921 |
+
2023-11-28 13:21:04,734 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
922 |
+
2023-11-28 13:21:13,159 [INFO] - Streamlit app has started
|
923 |
+
2023-11-28 13:21:13,354 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
924 |
+
2023-11-28 13:21:14,994 [INFO] - Streamlit app has started
|
925 |
+
2023-11-28 13:21:15,190 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
926 |
+
2023-11-28 13:21:17,132 [INFO] - Streamlit app has started
|
927 |
+
2023-11-28 13:21:17,328 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
928 |
+
2023-11-28 13:21:19,109 [INFO] - Streamlit app has started
|
929 |
+
2023-11-28 13:21:19,294 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
930 |
+
2023-11-28 13:21:21,201 [INFO] - Streamlit app has started
|
931 |
+
2023-11-28 13:21:21,413 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
932 |
+
2023-11-28 13:21:28,530 [INFO] - Streamlit app has started
|
933 |
+
2023-11-28 13:21:28,720 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
934 |
+
2023-11-28 13:21:32,344 [INFO] - Streamlit app has started
|
935 |
+
2023-11-28 13:21:32,537 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
936 |
+
2023-11-28 13:21:58,369 [INFO] - Streamlit app has started
|
937 |
+
2023-11-28 13:21:58,557 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
938 |
+
2023-11-28 13:22:03,724 [INFO] - Streamlit app has started
|
939 |
+
2023-11-28 13:22:36,893 [INFO] - Balances uploaded, shape of dataframe is (3, 2)
|
output/all_influencers_interactions.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:56fa4ff0ebacf5eca419e06beb2a4c09444b4bc1285f9503271e4e157693514a
|
3 |
+
size 6455502
|
output/cmc_data_v1_cryptocurrency_listings_latest_100.json
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:fcb005b97a284701233e7b75b95cb1dd6edcc4d21608b0a77f60a708e4e03557
|
3 |
+
size 118855
|
output/global_metrics.csv
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:f2ea68072d857f8df4fa012a3b3812958b6b429e244a7bb676ea3c8c3fd16fb8
|
3 |
+
size 2062
|
output/greed_fear_index.csv
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
size 363
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:9dbd09283b7fecc48bc63ddae9f75a5ef7870736b506d1c9a98b90e1774fbb60
|
3 |
size 363
|
output/influencers_balances.csv
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:58780b31635e55bb240338631191ea8b067eab050a4c807a537d427079369202
|
3 |
+
size 186
|
output/influencers_token_balances.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:11885bd488cef73d210438ea5e0d733aa02aac1004e72657ea7fda0b08511cf5
|
3 |
+
size 92
|
output/interactions_alexBecker.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:3965f63ee83a15c803c501606a8406f2302e404728e60011c7851474fb6fb533
|
3 |
+
size 3965237
|
output/interactions_elliotrades.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:eab057a6c694ff9771c3e665a384d30ca8181c21adb8aea8c384b04bc2c51356
|
3 |
+
size 5527711
|
output/interactions_jrny.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:8228ad2cab966159a31e46eba2003847b59e83cfdf943e33198f185fab27cf97
|
3 |
+
size 832545
|
output/top_100_update.csv
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:acce0c2d2784bfaa236f703cc90d437e4ee74b317ed09b101284a3a444d01827
|
3 |
+
size 1967500
|
output/transactions_APE.csv
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:9342bac98f54aa2f8cd068e79138987b4f6973978458564e8eec9cc39b36ea41
|
3 |
+
size 3761017
|
output/transactions_AXIE.csv
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:929bfd9aa07adaead0c1823711e6835df4708c1a3a397d484e029eb796b46a58
|
3 |
+
size 1885537
|
output/transactions_COPI.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:ca886705a085bd9b737a8d97efdcaa3366c48b0dccd95a3aefc95a8a04009edb
|
3 |
+
size 65583
|
output/transactions_GALA.csv
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:b6efe06c2df1429d02f9f774a74e31002991a378d1f5eac272ab22f147e30869
|
3 |
+
size 4725457
|
output/transactions_MANA.csv
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:f4b2e20bb735de1bb97298c715bee0ccffd5b6f593df6b98334a1fb30506a5e3
|
3 |
+
size 2398224
|
output/transactions_PET.csv
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:82630c63358642367e62796d2323691c7ca82a115cbeabc043774851d9f8644e
|
3 |
+
size 1249
|
output/transactions_WEAOPON.csv
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:947b350533c3ce072db8988341ce5e1d6ae30c42c99f1da14492b4812ae4c2a4
|
3 |
+
size 6453
|
requirements.txt
CHANGED
@@ -10,4 +10,7 @@ streamlit
|
|
10 |
requests
|
11 |
plotly
|
12 |
nbformat
|
13 |
-
schedule
|
|
|
|
|
|
|
|
10 |
requests
|
11 |
plotly
|
12 |
nbformat
|
13 |
+
schedule
|
14 |
+
networkx
|
15 |
+
scipy
|
16 |
+
matplotlib
|
ressources/dict_influencers_addr.json
CHANGED
@@ -1,6 +1,5 @@
|
|
1 |
{
|
2 |
"alexBecker": "0x4d224452801aced8b2f0aebe155379bb5d594381",
|
3 |
"elliotrades": "0xc02f318365582557a482eb5d1834dfd7af4a3f59",
|
4 |
-
"jrny": "0x08c1ae7e46d4a13b766566033b5c47c735e19f6f"
|
5 |
-
"momo": "0x17770D4A8C0d068be7eB5b7AF453f9E176E52464"
|
6 |
}
|
|
|
1 |
{
|
2 |
"alexBecker": "0x4d224452801aced8b2f0aebe155379bb5d594381",
|
3 |
"elliotrades": "0xc02f318365582557a482eb5d1834dfd7af4a3f59",
|
4 |
+
"jrny": "0x08c1ae7e46d4a13b766566033b5c47c735e19f6f"
|
|
|
5 |
}
|
ressources/dict_tokens_addr.json
CHANGED
@@ -3,5 +3,6 @@
|
|
3 |
"GALA":"0xd1d2Eb1B1e90B638588728b4130137D262C87cae",
|
4 |
"MANA":"0x0f5d2fb29fb7d3cfee444a200298f468908cc942",
|
5 |
"PET":"0xb870679a7fa65b924026f496de7f27c1dd0e5c5f",
|
6 |
-
"WEAOPON":"0x0b8057c3cc676c329c25c1d0cd27776efa73762d"
|
|
|
7 |
}
|
|
|
3 |
"GALA":"0xd1d2Eb1B1e90B638588728b4130137D262C87cae",
|
4 |
"MANA":"0x0f5d2fb29fb7d3cfee444a200298f468908cc942",
|
5 |
"PET":"0xb870679a7fa65b924026f496de7f27c1dd0e5c5f",
|
6 |
+
"WEAOPON":"0x0b8057c3cc676c329c25c1d0cd27776efa73762d",
|
7 |
+
"COPI":"0x42Baf1f659D765C65ADE5BB7E08eb2C680360d9d"
|
8 |
}
|
utils/extract_tokens_balances.py
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import json
|
3 |
+
import requests
|
4 |
+
import pandas as pd
|
5 |
+
from dotenv import load_dotenv
|
6 |
+
|
7 |
+
# Load environment variables
|
8 |
+
load_dotenv()
|
9 |
+
ETHERSCAN_API_KEY = os.getenv("API_KEY_ETHERSCAN")
|
10 |
+
TOKENS_TO_WATCH = "ressources/dict_tokens_addr.json" # Path to the file with tokens to watch
|
11 |
+
INFLUENCERS_FILE = "ressources/dict_influencers_addr.json" # Path to the file with influencers' addresses
|
12 |
+
|
13 |
+
def fetch_token_balance(address, token_contract):
|
14 |
+
url = f"https://api.etherscan.io/api?module=account&action=tokenbalance&contractaddress={token_contract}&address={address}&tag=latest&apikey={ETHERSCAN_API_KEY}"
|
15 |
+
response = requests.get(url)
|
16 |
+
if response.status_code == 200:
|
17 |
+
data = response.json()
|
18 |
+
if data["status"] == "1":
|
19 |
+
balance = int(data["result"])
|
20 |
+
return balance
|
21 |
+
else:
|
22 |
+
print(f"Error fetching token balance: {data.get('message')}")
|
23 |
+
else:
|
24 |
+
print(f"Error: HTTP {response.status_code}")
|
25 |
+
return 0
|
26 |
+
|
27 |
+
def main():
|
28 |
+
# Load tokens and influencers
|
29 |
+
with open(TOKENS_TO_WATCH, "r") as file:
|
30 |
+
tokens_to_watch = json.load(file)
|
31 |
+
with open(INFLUENCERS_FILE, "r") as file:
|
32 |
+
influencers = json.load(file)
|
33 |
+
|
34 |
+
balances = []
|
35 |
+
for name, address in influencers.items():
|
36 |
+
for token_name, token_contract in tokens_to_watch.items():
|
37 |
+
balance = fetch_token_balance(address, token_contract)
|
38 |
+
if balance > 0: # Optionally check if balance is above a certain threshold
|
39 |
+
balances.append({
|
40 |
+
"Influencer": name,
|
41 |
+
"Token": token_name,
|
42 |
+
"Balance": balance / (10 ** 18) # Convert from Wei
|
43 |
+
})
|
44 |
+
|
45 |
+
# Save to CSV
|
46 |
+
df = pd.DataFrame(balances)
|
47 |
+
df.to_csv("output/influencers_token_balances.csv", index=False)
|
48 |
+
|
49 |
+
if __name__ == "__main__":
|
50 |
+
main()
|
utils/extract_wallet_interactions.py
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import requests
|
2 |
+
import pandas as pd
|
3 |
+
import json
|
4 |
+
import os
|
5 |
+
from dotenv import load_dotenv
|
6 |
+
|
7 |
+
# Load environment variables
|
8 |
+
load_dotenv()
|
9 |
+
API_KEY = os.getenv('API_KEY_ETHERSCAN')
|
10 |
+
URL_ETHERSCAN = os.getenv('URL_ETHERSCAN')
|
11 |
+
|
12 |
+
def get_token_transactions(address, action):
|
13 |
+
params = {
|
14 |
+
'module': 'account',
|
15 |
+
'action': action, # tokentx for ERC20, tokennfttx for ERC721, token1155tx for ERC1155
|
16 |
+
'address': address,
|
17 |
+
'startblock': 0,
|
18 |
+
'endblock': 99999999,
|
19 |
+
'sort': 'asc',
|
20 |
+
'apikey': API_KEY
|
21 |
+
}
|
22 |
+
response = requests.get(URL_ETHERSCAN, params=params)
|
23 |
+
if response.status_code == 200:
|
24 |
+
data = response.json()
|
25 |
+
return data['result']
|
26 |
+
else:
|
27 |
+
print(f"Error fetching transactions for address {address} with action {action}")
|
28 |
+
return []
|
29 |
+
|
30 |
+
def combine_token_transactions(address):
|
31 |
+
erc20_transactions = get_token_transactions(address, 'tokentx')
|
32 |
+
erc721_transactions = get_token_transactions(address, 'tokennfttx')
|
33 |
+
erc1155_transactions = get_token_transactions(address, 'token1155tx')
|
34 |
+
|
35 |
+
combined_transactions = erc20_transactions + erc721_transactions + erc1155_transactions
|
36 |
+
return combined_transactions
|
37 |
+
|
38 |
+
def save_transactions_to_csv(transactions, influencer_name):
|
39 |
+
df = pd.DataFrame(transactions)
|
40 |
+
df.to_csv(f"output/interactions_{influencer_name}.csv", index=False)
|
41 |
+
|
42 |
+
if __name__ == "__main__":
|
43 |
+
# Load influencers
|
44 |
+
with open("ressources/dict_influencers_addr.json", "r") as file:
|
45 |
+
influencers = json.load(file)
|
46 |
+
|
47 |
+
# Extract and save interactions for all influencers
|
48 |
+
for name, address in influencers.items():
|
49 |
+
transactions = combine_token_transactions(address)
|
50 |
+
save_transactions_to_csv(transactions, name)
|