Is féidir le sonraí praghais a rianú le haghaidh criptocurrencies coitianta a bheith dúshlánach mar gheall ar a luaineacht ard. Tá sé riachtanach taighde críochnúil a dhéanamh agus a bheith ullamh chun leas a bhaint as deiseanna brabúis agus tú ag déileáil le criptocurrencies. Uaireanta bíonn sé deacair sonraí praghsála cruinne a fháil. Is iondúil go n -úsáidtear APIs chun na críche seo, ach is minic a thagann teorainneacha le síntiúis saor in aisce.
Fiosróimid conas praghsanna reatha na 150 criptocurrencies is fearr a scrape go tréimhsiúil ag baint úsáide as Python. Baileoidh ár lorgaire praghas criptocurrency na sonraí seo a leanas:
Is é an chéad chéim inár script Python na leabharlanna riachtanacha a allmhairiú. Bainfimid úsáid as na leabharlanna `iarrataí 'agus` `áille’ chun iarratais a sheoladh agus sonraí a bhaint as comhaid HTML, faoi seach.
import requests
from bs4 import BeautifulSoup
import csv
import time
import random
Bainfimid úsáid freisin as `CSV` le haghaidh oibríochtaí comhaid CSV agus` am 'agus `randamach' chun minicíocht na nuashonruithe praghais agus uainíocht na seachvótálaithe a rialú, faoi seach.
Agus iarratais á gcur agat gan seachfhreastalaí préimhe, d'fhéadfá teacht ar fhreagraí "rochtain" a dhiúltú.
Is féidir leat seachvótálaí a bhunú ar an mbealach seo:
proxy = {
"http": "http://Your_proxy_IP_Address:Your_proxy_port",
}
html = requests.get(url, proxies=proxy)
Le haghaidh seachvótálaithe fíordheimhnithe, bain úsáid as an bhformáid seo a leanas:
proxy = {
"http": "http://username:password@Your_proxy_IP_Address:Your_proxy_port",
}
html = requests.get(url, proxies=proxy)
Cuimhnigh go gcuirfidh tú an seoladh seachfhreastalaí iarbhír in ionad “your_proxy_ip_address” agus “your_proxy_port”. Chomh maith leis sin, cuir do dhintiúir in ionad luach “ainm úsáideora” agus “pasfhocal”.
Is teicníc an -tábhachtach é seachvótálaithe a rothlú chun láithreáin ghréasáin nua -aimseartha a scrapáil go rathúil mar is minic a chuireann siad cosc ar rochtain ar róbónna agus ar scríobairí nuair a bhraitheann siad iarratais iomadúla ón seoladh IP céanna. Chun uainíocht seachvótálaí a chur ar bun, allmhairigh an leabharlann randamach.
Cruthaigh liosta de na seachvótálaithe le haghaidh uainíochta:
# Liosta na seachvótálaithe
proxies = [
"username:password@Your_proxy_IP_Address:Your_proxy_port1",
"username:password@Your_proxy_IP_Address:Your_proxy_port2",
"username:password@Your_proxy_IP_Address:Your_proxy_port3",
"username:password@Your_proxy_IP_Address:Your_proxy_port4",
"username:password@Your_proxy_IP_Address:Your_proxy_port5",
]
Ag bogadh ar aghaidh, sainmhínímid feidhm get_proxy () chun seachfhreastalaí a roghnú go randamach ónár liosta do gach iarratas.
# Modh chun do sheachvótálaithe a rothlú
def get_proxy():
# Roghnaigh seachvótálaí randamach ón liosta
proxy = random.choice(proxies)
return {
"http": f'http://{proxy}',
"https": f'http://{proxy}'
}
Filleann an fheidhm seo foclóir leis an seachvótálaí roghnaithe don phrótacal HTTP. Cuidíonn an thus seo linn a bheith mar ilúsáideoirí orgánacha ar an láithreán gréasáin atá á scríobadh againn, ag cur lenár seansanna bearta frith-scrapála a sheachaint.
Scriosann an fheidhm get_crypto_prices () praghsanna criptocurrency ó Coindesk. Seolann sé iarratas GET chuig an Láithreán Gréasáin ag baint úsáide as an bhfeidhm iarratais (), agus tá ár gcuid seachvótálaithe rothlacha ar siúl mar argóint. Téimid i dtéacs an fhreagra agus an parsálaí "html.parser" chuig an tógálaí álainn.
def get_crypto_prices():
url = "https://crypto.com/price"
html = requests.get(url, proxies=get_proxy())
soup = BeautifulSoup(html.text, "html.parser")
Sula dtosaímid ar eastóscadh sonraí, ní mór dúinn struchtúr an tsuímh a thuiscint. Is féidir linn uirlisí forbróra an bhrabhsálaí a úsáid chun HTML an leathanaigh ghréasáin a iniúchadh. Chun rochtain a fháil ar uirlisí forbróra, is féidir leat cliceáil ar dheis ar an leathanach gréasáin agus “Iniúchadh” a roghnú.
Faighimid ansin na coimeádáin phraghsanna go léir ar an leathanach ag baint úsáide as feidhm Find_ALL () BeautifulSoup agus an roghnóir CSS "TR", Aicme _ = 'CSS-1CXC880' agus bain an t-ainm mona, ticker, praghas, agus athrú céatadáin 24 uair an chloig do gach ceann coimeádán. Stóráiltear na sonraí seo i bhfoclóir agus ansin cuirtear i gceangal leis an liosta praghsanna.
Anseo, bainimid úsáid as Row.Find ('P', class = 'CSS-WS3') chun an ghné ‘P’ a aimsiú leis an rang "CSS-RK WS3". Ansin, bainimid an téacs amach agus stórálaimid é in athróg “ainm”.
coin_name_tag = row.find('p', class_='css-rkws3')
name = coin_name_tag.get_text() if coin_name_tag else "no name entry"
Ar an gcaoi chéanna, bainimid úsáid as Row.Find ("Span", aicme _ = "CSS-1JJ7B1A") chun an eilimint réise a aimsiú leis an rang "CSS-1JJ7B1A". Baineann an modh GET_TEXT () an t -ábhar téacs, ag soláthar an ticéid dúinn.
coin_ticker_tag = row.find('span', class_='css-1jj7b1a')
ticker = coin_ticker_tag.get_text() if coin_ticker_tag else "no ticker entry"
Aimsímid an ghné “DIV” leis an rang "CSS-B1ilzc". Déantar an t -ábhar téacs a bhaint ansin agus a shannadh don athróg praghais. Bainimid úsáid as ráiteas coinníollach chun cásanna a láimhseáil ina bhféadfadh an ghné a bheith i láthair.
coin_price_tag = row.find('div', class_='css-b1ilzc')
price = coin_price_tag.text.strip() if coin_price_tag else "no price entry"
Ar an gcaoi chéanna, aimsímid an ghné “P” leis an rang "CSS-yyku61" chun an t-athrú céatadáin a bhaint amach. Déantar an t -ábhar téacs a bhaint, agus láimhseálann ráiteas coinníollach neamhláithreacht fhéideartha.
coin_percentage_tag = row.find('p', class_='css-yyku61')
percentage = coin_percentage_tag.text.strip() if coin_percentage_tag else "no percentage entry"
Agus é á chur le chéile go léir, tá lúb againn atá mar seo:
for row in price_rows:
coin_name_tag = row.find('p', class_='css-rkws3')
name = coin_name_tag.get_text() if coin_name_tag else "no name entry"
coin_ticker_tag = row.find('span', class_='css-1jj7b1a')
ticker = coin_ticker_tag.get_text() if coin_ticker_tag else "no ticker entry"
coin_price_tag = row.find('div', class_='css-b1ilzc')
price = coin_price_tag.text.strip() if coin_price_tag else "no price entry"
coin_percentage_tag = row.find('p', class_='css-yyku61')
percentage = coin_percentage_tag.text.strip() if coin_percentage_tag else "no percentage entry"
prices.append({
"Coin": name,
"Ticker": ticker,
"Price": price,
"24hr-Percentage": percentage
})
return prices
Sainmhínítear an fheidhm Export_to_csv () chun na sonraí scríobtha a onnmhairiú chuig comhad CSV. Bainimid úsáid as an leabharlann CSV chun na sonraí sa liosta praghsanna a scríobh chuig an gcomhad sonraithe CSV.
def export_to_csv(prices, filename="proxy_crypto_prices.csv"):
with open(filename, "w", newline="") as file:
fieldnames = ["Coin", "Ticker", "Price", "24hr-Percentage"]
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(prices)
Sa chuid is mó dár script, tugaimid an fheidhm get_crypto_prices () chun na praghsanna agus export_to_csv () a scríobadh chun iad a onnmhairiú chuig comhad CSV. Fanann muid ansin ar feadh 5 nóiméad (300) sula ndéantar na praghsanna a nuashonrú arís. Déantar é seo i lúb gan teorainn, mar sin leanfaidh na praghsanna ag nuashonrú gach 5 nóiméad go dtí go stopfar an clár.
if __name__ == "__main__":
while True:
prices = get_crypto_prices()
export_to_csv(prices)
print("Prices updated. Waiting for the next update...")
time.sleep(300) # Praghsanna a nuashonrú gach 5 nóiméad
Seo an cód iomlán a chomhtháthaíonn na teicnící agus na céimeanna go léir atá clúdaithe againn, ag soláthar cur chuige sruthlínithe chun lorgaire praghsanna cripteo a thógáil mar atá déanta againn sa tionscadal seo.
import requests
from bs4 import BeautifulSoup
import csv
import time
import random
# Liosta na seachvótálaithe
proxies = [
"username:password@Your_proxy_IP_Address:Your_proxy_port1",
"username:password@Your_proxy_IP_Address:Your_proxy_port2",
"username:password@Your_proxy_IP_Address:Your_proxy_port3",
"username:password@Your_proxy_IP_Address:Your_proxy_port4",
"username:password@Your_proxy_IP_Address:Your_proxy_port5",
]
# Modh saincheaptha chun seachvótálaithe a rothlú
def get_proxy():
# Roghnaigh seachvótálaí randamach ón liosta
proxy = random.choice(proxies)
# Foclóir a chur ar ais leis an seachvótálaí do phrótacal HTTP
return {"http": f'http://{proxy}',
"https": f'http://{proxy}'
}
def get_crypto_prices():
url = "https://crypto.com/price"
html = requests.get(url, proxies=get_proxy())
print(html.status_code)
soup = BeautifulSoup(html.content, "html.parser")
price_rows = soup.find_all('tr', class_='css-1cxc880')
prices = []
for row in price_rows:
coin_name_tag = row.find('p', class_='css-rkws3')
name = coin_name_tag.get_text() if coin_name_tag else "no name entry"
coin_ticker_tag = row.find('span', class_='css-1jj7b1a')
ticker = coin_ticker_tag.get_text() if coin_ticker_tag else "no ticker entry"
coin_price_tag = row.find('div', class_='css-b1ilzc')
price = coin_price_tag.text.strip() if coin_price_tag else "no price entry"
coin_percentage_tag = row.find('p', class_='css-yyku61')
percentage = coin_percentage_tag.text.strip() if coin_percentage_tag else "no percentage entry"
prices.append({
"Coin": name,
"Ticker": ticker,
"Price": price,
"24hr-Percentage": percentage
})
return prices
def export_to_csv(prices, filename="proxy_crypto_prices.csv"):
with open(filename, "w", newline="") as file:
fieldnames = ["Coin", "Ticker", "Price", "24hr-Percentage"]
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(prices)
if __name__ == "__main__":
while True:
prices = get_crypto_prices()
export_to_csv(prices)
print("Prices updated. Waiting for the next update...")
time.sleep(300) # Praghsanna a nuashonrú gach 5 nóiméad (athraigh de réir mar is gá)
Sábháltar torthaí ár lorgaire praghsanna cripteo chuig comhad CSV darb ainm “Proxy_Crypto_Prices.csv” mar atá le feiceáil thíos:
Mar gheall ar chomhréir shimplí Python, is é an rogha is fearr é chun lorgaire praghsanna uathoibrithe criptocurrency a thógáil. Éascaíonn an teanga chlársceidealaithe seo gnéithe nua a chur leis agus leathnú chumais an lorgaire. Léiríonn an sampla a chuirtear ar fáil conas scraper bunúsach a chruthú ar féidir leis rátaí criptocurrency a nuashonrú go huathoibríoch ag eatraimh shonraithe, sonraí a bhailiú trí sheachvótálaí, agus é a shábháil i bhformáid atá éasca le húsáid.
Tuairimí: 0