Tá infheisteoirí agus anailísithe an lae inniu ag baint úsáide as faisnéis Airgeadais Google ós rud é go bhfuil sé reatha agus cruinn. Is cosúil gurb é Google Finance an áit is fearr chun sonraí airgeadais reatha de gach cineál a bheith aige, go háirithe i gcás stoic mar aon le hinnéacsanna agus treochtaí margaidh ós rud é go dtugann sé níos mó sonraí faoi mhéadrachtaí airgeadais cuideachtaí. Is é Python an teanga is fearr le haghaidh scríobadh gréasáin. Cuideoidh an post seo leat foghlaim conas sonraí a bhailiú ó Google Finance ionas gur féidir leat na huirlisí anailíse airgeadais riachtanacha go léir a bheith agat.
Sula dtosaíonn tú, déan cinnte go bhfuil python suiteáilte agat ar do chóras. Beidh na leabharlanna de dhíth ort freisin: Iarrataí ar iarratais HTTP agus LXML a dhéanamh chun ábhar HTML na leathanach gréasáin a pharsáil. Chun na leabharlanna riachtanacha a shuiteáil, bain úsáid as na horduithe seo a leanas ar an líne ordaithe:
pip install requests
pip install lxml
Ansin, déanfaimid iniúchadh ar an bpróiseas céim ar chéim chun sonraí a bhaint as Google Finance:
Chun sonraí ó Google Finance a scríobadh, ní mór dúinn na heilimintí sonracha HTML a aithint ina bhfuil an fhaisnéis a bhfuil suim againn iontu:
Feidhmeoidh na habairtí XPath seo mar threoir chun na sonraí ábhartha a nascleanúint agus a bhaint as struchtúr HTML ar leathanaigh Airgeadais Google.
Ceart:
Praghas a fháil amach:
Dáta:
Agus scraper á chur ar bun agat, tá sé ríthábhachtach díriú ar roinnt gnéithe tábhachtacha chun bailiú sonraí éifeachtúla agus slán a chinntiú.
Chun ábhar HTML a fháil ó láithreán gréasáin Google Finance, bainfimid úsáid as an Leabharlann Iarrataí. Cuireann an chéim seo tús leis an bpróiseas tríd an leathanach gréasáin a luchtú as a bhfuil sé i gceist againn sonraí a bhaint.
Tá sé thar a bheith tábhachtach na ceanntásca cearta a úsáid nuair a scríobhann an gréasáin, go háirithe an ceanntásc gníomhaire úsáideora. Tá úsáid ceanntásca riachtanach chun fíor -iarratas brabhsálaí a ionsamhlú a chuirfidh cosc ar an suíomh do script uathoibríoch a aithint agus a stopadh. Déanann siad cinnte go bhfreagraíonn an freastalaí i gceart trí fhaisnéis ábhartha a thabhairt faoin iarratas. Ceanntásca cuí as láthair, d'fhéadfaí an t -iarratas a dhiúltú nó féadfaidh an freastalaí ábhar atá go hiomlán difriúil a thabhairt ar ais nó ábhar a sheachadadh i gcodanna a d'fhéadfadh srian a chur ar an ngníomhaíocht scríobtha gréasáin. Dá bhrí sin, cuidíonn ceanntásca a leagan síos go cuí le rochtain ar an láithreán gréasáin a choinneáil agus cinntíonn sé go bhfaigheann an scraper na sonraí cearta.
import requests
# Sainmhínigh na ceanntásca chun cuairt a thabhairt ar chuairt bhrabhsálaí agus seachain an freastalaí bac a chur ar an bhfreastalaí
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language': 'en-IN,en;q=0.9',
'cache-control': 'no-cache',
'dnt': '1', # Ná déan ceanntásc iarratais a rianú
'pragma': 'no-cache',
'priority': 'u=0, i',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
'sec-ch-ua-arch': '"x86"',
'sec-ch-ua-bitness': '"64"',
'sec-ch-ua-full-version-list': '"Not/A)Brand";v="8.0.0.0", "Chromium";v="126.0.6478.114", "Google Chrome";v="126.0.6478.114"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-model': '""',
'sec-ch-ua-platform': '"Linux"',
'sec-ch-ua-platform-version': '"6.5.0"',
'sec-ch-ua-wow64': '?0',
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'none',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
}
# Sainmhínigh URL an leathanach Airgeadais Google do BNP Paribas (Ticker BNP) ar mhalartú Euronext Paris (EPA)
url = "https://www.google.com/finance/quote/BNP:EPA?hl=en"
# Déan iarratas ar an HTTP a fháil chuig an URL leis na ceanntásca sonraithe
response = requests.get(url, headers=headers)
Agus Google Finance nó aon láithreán gréasáin á scríobadh ar scála, tá sé ríthábhachtach proxies a úsáid. Seo an fáth:
# Sainmhínigh na Socruithe seachfhreastalaí
proxies = {
'http': 'http://your_proxy_address:port',
'https': 'https://your_proxy_address:port',
}
# Déan iarratas ar an HTTP a fháil chuig an URL leis na ceanntásca sonraithe agus na seachvótálaithe
response = requests.get(url, headers=headers, proxies=proxies)
Nuair a bheidh an t -ábhar HTML faighte againn, ní mór dúinn é a pharsáil ag baint úsáide as an leabharlann LXML. Cuirfidh sé seo ar ár gcumas nascleanúint a dhéanamh tríd an struchtúr HTML agus na sonraí a theastaíonn uainn a bhaint amach:
Déantar an fheidhm ó LXML.html a allmhairiú chun ábhar HTML a pharsáil i réad eilimint. Parses an modh asstring freagartha.
from lxml.html import fromstring
# Ábhar HTML an fhreagra a pharsáil ag baint úsáide as modh LXML ó mhodh LXML
parser = fromstring(response.text)
Anois, déanaimis sonraí sonracha a bhaint amach ag baint úsáide as abairtí xpath ón gcrann html parsáilte:
Aisghabhann an teideal teideal na hionstraime airgeadais ón HTML parsáilte. Aisghabhann an praghas an praghas stoic reatha. Aisghabhann an dáta an dáta. Tá an teideal, an praghas, agus an dáta eastósctha sa bhfoclóir Finance_Data. Cuirtear an foclóir seo i gceangal le liosta.
# Liosta chun sonraí aschuir a stóráil
finance_data_list = []
# Teideal na hionstraime airgeadais a bhaint
title = parser.xpath('//div[@class="zzDege"]/text()')[0]
# Praghas reatha an stoic a bhaint
price = parser.xpath('//div[@class="YMlKec fxKbKc"]/text()')[0]
# An dáta a bhaint amach
date = parser.xpath('//div[@class="ygUjEc"]/text()')[0]
# Foclóir a chruthú chun na sonraí eastósctha a stóráil
finance_data = {
'title': title,
'price': price,
'date': date
}
#Sonraí a chur i gceangal le Finance_Data_List
finance_data_list.append(finance_data)
Chun na sonraí scríobtha a láimhseáil, b'fhéidir gur mhaith leat é a phróiseáil a thuilleadh nó é a stóráil i bhformáid struchtúrtha mar JSON:
Sonraíonn an t -athróg output_file ainm an chomhaid JSON ina sábhálfar sonraí (Finance_Data.json). Osclaíonn an Open (output_file, 'w') an comhad i mód scríbhneoireachta, agus scríobhann json.dump (Finance_Data_List, F, Indent = 4) an Finance_Data_List chuig an gcomhad le indentation 4-spás le haghaidh inléiteachta.
# Sábháil Finance_Data_List chuig comhad JSON
output_file = 'finance_data.json'
with open(output_file, 'w') as f:
json.dump(finance_data_list, f, indent=4)
Agus sonraí á scríobadh ó shuíomhanna gréasáin, tá sé tábhachtach eisceachtaí iarratais a láimhseáil chun iontaofacht agus stóinseacht do script scríobtha a chinntiú. Is féidir leis na hiarratais seo teip ar chúiseanna éagsúla amhail saincheisteanna líonra, earráidí freastalaí nó amanna ama. Soláthraíonn an leabharlann iarratais i Python bealach chun na cineálacha eisceachtaí seo a láimhseáil go héifeachtach mar a thaispeántar thíos:
try:
# Iarratas GET a sheoladh chuig an URL
response = requests.get(url)
# Httperror a ardú le haghaidh drochfhreagraí (cóid stádais 4xx nó 5xx)
response.raise_for_status()
except requests.exceptions.HTTPError as e:
# Earráidí HTTP a láimhseáil (cosúil le 404, 500, etc.)
print(f"HTTP error occurred: {e}")
except requests.exceptions.RequestException as e:
# Aon eisceachtaí eile a d'fhéadfadh tarlú le linn na hiarrata a láimhseáil
print(f"An error occurred: {e}")
Clúdaíonn an bloc triail an cód a d'fhéadfadh eisceachtaí a ardú. Seolann na hiarrataí (URL) iarratas GET. Seiceálann an freagra.raise_for_status () an cód stádais freagartha agus ardaíonn sé Httperror do chóid nár éirigh leo. Na hiarrataí seachas na hiarratais.httperror mar E: Gabhfaidh Eisceachtaí Httperror agus Priontaí an teachtaireacht earráide. Na hiarrataí seachas na hiarratais.exceptions.Requestexception mar E: gabhálacha eisceachtaí eile (m.sh., earráidí líonra, amanna ama) agus priontann sé an teachtaireacht earráide.
Anois, déanaimis gach rud a chomhtháthú chun ár bhfeidhm scraper a chruthú a fhaigheann, a pharsálann, agus a shroicheann sonraí ó il -URLanna Airgeadais Google:
import requests
from lxml.html import fromstring
import json
import urllib3
import ssl
ssl._create_default_https_context = ssl._create_stdlib_context
urllib3.disable_warnings()
# Liosta URLanna le scrape
urls = [
"https://www.google.com/finance/quote/BNP:EPA?hl=en",
"https://www.google.com/finance/quote/SPY:NYSEARCA?hl=en",
"https://www.google.com/finance/quote/SENSEX:INDEXBOM?hl=en"
]
# Sainmhínigh ceanntásca chun cuairt a thabhairt ar chuairt bhrabhsálaí
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language': 'en-IN,en;q=0.9',
'cache-control': 'no-cache',
'dnt': '1',
'pragma': 'no-cache',
'priority': 'u=0, i',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
'sec-ch-ua-arch': '"x86"',
'sec-ch-ua-bitness': '"64"',
'sec-ch-ua-full-version-list': '"Not/A)Brand";v="8.0.0.0", "Chromium";v="126.0.6478.114", "Google Chrome";v="126.0.6478.114"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-model': '""',
'sec-ch-ua-platform': '"Linux"',
'sec-ch-ua-platform-version': '"6.5.0"',
'sec-ch-ua-wow64': '?0',
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'none',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
}
# Sainmhínigh Endpoint seachfhreastalaí
proxies = {
'http': 'http://your_proxy_address:port',
'https': 'https://your_proxy_address:port',
}
# Liosta chun sonraí scríobtha a stóráil
finance_data_list = []
# Athraigh trí gach URL agus sonraí scrape
for url in urls:
try:
# Iarratas GET a sheoladh chuig an URL
response = requests.get(url, headers=headers, proxies=proxies, verify=False)
# Httperror a ardú le haghaidh drochfhreagraí (cóid stádais 4xx nó 5xx)
response.raise_for_status()
# Ábhar HTML an fhreagra a pharsáil ag baint úsáide as modh LXML ó mhodh LXML
parser = fromstring(response.text)
# An teideal, an praghas, agus an dáta a bhaint
title = parser.xpath('//div[@class="zzDege"]/text()')[0]
price = parser.xpath('//div[@class="YMlKec fxKbKc"]/text()')[0]
date = parser.xpath('//div[@class="ygUjEc"]/text()')[0]
# Stóráil sonraí eastósctha i bhfoclóir
finance_data = {
'title': title,
'price': price,
'date': date
}
# Cuir an foclóir noto ar an liosta
finance_data_list.append(finance_data)
except requests.exceptions.HTTPError as e:
# Earráidí HTTP a láimhseáil (cosúil le 404, 500, etc.)
print(f"HTTP error occurred for URL {url}: {e}")
except requests.exceptions.RequestException as e:
# Aon eisceachtaí eile a d'fhéadfadh tarlú le linn na hiarrata a láimhseáil
print(f"An error occurred for URL {url}: {e}")
# Sábháil Finance_Data_List chuig comhad JSON
output_file = 'finance_data.json'
with open(output_file, 'w') as f:
json.dump(finance_data_list, f, indent=4)
print(f"Scraped data saved to {output_file}")
Aschur:
Tairgeann an treoir seo rang teagaisc cuimsitheach ar shonraí a scríobadh ó Google Finance ag baint úsáide as Python, in éineacht le leabharlanna cumhachtacha cosúil le `LXML` agus` iarrataí '. Leagann sé an bhunobair chun uirlisí sofaisticiúla a chruthú le haghaidh scríobadh sonraí airgeadais, ar féidir iad a úsáid chun anailís dhomhain a dhéanamh ar an margadh, monatóireacht a dhéanamh ar ghníomhaíochtaí iomaitheora, nó chun cinntí infheistíochta eolasacha a thacú.
Tuairimí: 0