Internet sayfasinin tamamindan veri cekme islemi

Arkadaslar merhaba , soyle bir sorunum var bir adres ve telefon rehberi sitesinden, belirli isletmelerin isim , adres ve telefon numaralrinin verisini cekmek istiyorum. Bunun icin request ve bs kütüphanelerini kullandim.

Sorunum su ki, internet sayfasinda cok fazla bilgi olmasina ragmen, gelen veri de sinirli bir sekilde.

Internet Sayfasinda 50 adet isletme var ise , gelen veriden ben sadece 10 tanesinin bilgilerini alabiliyorum. Bu da benim icin cok az.

Internet sayfasinin yapisi, maus ile assagiya indikce sürekli yenileniyor. Bundan kaynakli olabilir mi ?

Eger sorun bu ise nasil bütün verileri alabilirim ?

Kaynak kodu mu ekliyorum.

import requests
from bs4 import BeautifulSoup
r = requests.get(“Immobilienmakler in Hannover jetzt finden! | Das Telefonbuch”)
soup = BeautifulSoup(r.content)
linkler_adress = soup.find_all(“a”,{“class”:“addr”})
linkler_name = soup.find_all(“a”,{“class”:“name”})

adres_list={}
for i in list(range(len(linkler_adress))) :

name = ((linkler_name[i].contents)[1].text).strip()

adres = ((linkler_adress[i].contents)[1].text).strip()

postletzahl = ((linkler_adress[i].contents)[3].text).strip()
ort = ((linkler_adress[i].contents)[5].text).strip()
adress = adres + " " + postletzahl +" "  + ort
adres_list.setdefault(name,adress)

adres_list

Internet sayfasinin yapisi, maus ile assagiya indikce sürekli yenileniyor. Bundan kaynakli olabilir mi ?

Evet muhtemelen bundan kaynaklı olur.

Sorunu selenium ile hallettim , sayfa acilis kisminida time kullandim. o sirada sayfayi kendim en alt kisima getiriyorum, bu sekilde tum veriyi cekiyorum.

 `from bs4 import BeautifulSoup
from selenium import webdriver
import chromedriver_binary 
import time
options = webdriver.ChromeOptions()
options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
chrome_driver_path = r"C:\Users\erena\Desktop\chromedriver.exe"

driver = webdriver.Chrome(chrome_driver_path, chrome_options=options)
url = "https://www.dastelefonbuch.de/Branchen/Immobilienmakler/Hannover"
driver.get(url)
time.sleep(100)
soup = BeautifulSoup(driver.page_source, 'html.parser')


linkler_adress = soup.find_all("a",{"class":"addr"})
linkler_name = soup.find_all("a",{"class":"name"})

adres_list={}
for i in list(range(len(linkler_adress))) :
name = ((linkler_name[i].contents)[1].text).strip()

adres = ((linkler_adress[i].contents)[1].text).strip()

postletzahl = ((linkler_adress[i].contents)[3].text).strip()
# ort = ((linkler_adress[i].contents)[5].text).strip()
adress = adres + " " + postletzahl +" "  + "Hannover"
adres_list.setdefault(name,adress)

adres_list`