Kodlarla iş bankasına 3 adet istek gönderiliyor.
İlk istek (r) iş bankası sayfasındaki borsadaki şirketlerin kodları ve bu hisse isimli listede tutuluyor.
url="https://www.isyatirim.com.tr/tr-tr/analiz/hisse/Sayfalar/sirket-karti.aspx?hisse=ACSEL"
r = requests.get(url, headers=headers)
İkinci istek (r1) hisse listesinin içinde sırayla gelen bilgiye göre ilgili şirkete ait bilançolarının tarihler, yıllar ve dönem bilgilerine ulaşıyoruz.
for i in hisseler:
hisse=i
tarihler=[]
yillar=[]
donemler=[]
user_agent = '....'
headers = {'User-Agent': user_agent}
url1= "https://www.isyatirim.com.tr/tr-tr/analiz/hisse/Sayfalar/sirket-karti.aspx?hisse="+hisse
r1=requests.get(url1, headers=headers)
soup=BeautifulSoup(r1.text,"html.parser")
secim = soup.find("select", id="ddlMaliTabloFirst")
secim2 = soup.find("select", id="ddlMaliTabloGroup")
Üçüncü istek (r2) olup r1 ile aldığımız hisse, tarih, yıllar ve dönemler bilgileriyle parametre oluşturup istek gönderildi.
if len(tarihler)>=4:
parametreler =(
("companyCode", hisse),
("exchange", "TRY"),
("financialGroup", grup),
("year1", yillar[0]),
("period1", donemler[0]),
("year2", yillar[1]),
("period2", donemler[1]),
("year3", yillar[2]),
("period3", donemler[2]),
("year4", yillar[3]),
("period4", donemler[3]))
user_agent = '.......'
headers = {'User-Agent': user_agent}
url2 = "https://www.isyatirim.com.tr/_layouts/15/IsYatirim.Website/Common/Data.aspx/Malitablo"
r2 = requests.get(url2, headers=headers, params=parametreler).json()["value"]
veri = pd.DataFrame.from_dict(r2)
veri.drop(columns=["itemCode", "itemDescEng"], inplace=True)
r2 isteğini parametreler ile kontrol ettiğimde cevap olarak
<Response [404]>
alıyorum.
fakat r2 isteğini parametre oluşturmadan herhangi bir hisseye ait denediğimde ise
user_agent = '.......'
headers = {'User-Agent': user_agent}
url2 = (https://www.isyatirim.com.tr/_layouts/15/IsYatirim.Website/Common/Data.aspx/MaliTablo?companyCode=AEFES&exchange=TRY&financialGroup=XI_29&year1=2022&period1=9&year2=2023&period2=6&year3=2023&period3=3&year4=2022&period4=12&_=1705906782613)
r2 = requests.get(url2, headers=headers)
cevap olarak siteye erişim olduğu bilgisi geliyor.
<Response [200]>
Kod parametreler ile çalışmaya devam ettiğinde ise aşağıdaki hata geliyor. User agent kullanıyorum, siteye iletişime ait engel koymamış fakat parametreler ile isteğim olmuyor. göremediğim ne var? Eksik bildiğim ne var?
Traceback (most recent call last):
File "C:\Users\VGB\AppData\Roaming\Python\Python312\site-packages\requests\models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python312\Lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python312\Lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python312\Lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\VGB\PycharmProjects\yeni\pythonProject\yen.py", line 82, in <module>
r2 = requests.get(url2, headers=headers, params=parametreler).json()["value"]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\VGB\AppData\Roaming\Python\Python312\site-packages\requests\models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)