Treoir maidir le Tracker Praghas Simplí Crypto a Thógáil

Tuairimí: 0

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:

  • Ainm mona;
  • Ticéad;
  • Praghas;
  • Céatadán athraithe praghais 24 uair an chloig.

Céim 1: Leabharlanna a Allmhairiú

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.

Céim 2: Proxies a chur ar bun

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”.

Céim 3: Proxies rothlacha

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.

Céim 4: Ár Sonraí Crypto a fháil agus a pharsáil

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")

Céim 5: Struchtúr an tsuímh a thuiscint

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ú.

1.png

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.

2.png

Ainm an bhoinn a bhaint

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”.

3.png

coin_name_tag = row.find('p', class_='css-rkws3')
name = coin_name_tag.get_text() if coin_name_tag else "no name entry"

Ag baint an ticéir

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.

4.png

coin_ticker_tag = row.find('span', class_='css-1jj7b1a')
ticker = coin_ticker_tag.get_text() if coin_ticker_tag else "no ticker entry"

An praghas a bhaint

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.

5.png

coin_price_tag = row.find('div', class_='css-b1ilzc')
price = coin_price_tag.text.strip() if coin_price_tag else "no price entry"

An t -athrú céatadáin a bhaint

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.

6.png

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

Céim 6: Sonraí a onnmhairiú chuig CSV

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)

Céim 7: Ag rith an lorgaire

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

Cód Iomlán

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á)

Toradh

Sábháltar torthaí ár lorgaire praghsanna cripteo chuig comhad CSV darb ainm “Proxy_Crypto_Prices.csv” mar atá le feiceáil thíos:

7.jpg

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 tuairimí