I tried to fetch all special div tag with a class of "someClass" from a website
Website need to scroll down to load new div elements so I used Keys.PAGE_DOWN, that worked and scrolled but the data wasn't complete again
So I used:
elem = driver.find_element(By.TAG_NAME, "body")
no_of_pagedowns = 23
while no_of_pagedowns:
elem.send_keys(Keys.PAGE_DOWN)
time.sleep(0.7)
no_of_pagedowns-=1
It will Scroll till the entire html page load
but when I want to write data in a file, it just write 20 div tag instead of hundred ...
Complete Code:
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
url = 'https://divar.ir/s/tehran/buy-apartment/parand?price=200000000-450000000&non-negotiable=true&has-photo=true&q=%D8%AE%D8%A7%D9%86%D9%87%20%D9%BE%D8%B1%D9%86%D8%AF'
driver.get(url)
elem = driver.find_element(By.TAG_NAME, "body")
no_of_pagedowns = 23
while no_of_pagedowns:
elem.send_keys(Keys.PAGE_DOWN)
time.sleep(0.3)
no_of_pagedowns-=1
datas = driver.find_elements(By.CLASS_NAME, 'kt-post-card__body')
f = open('data.txt', 'w')
counter = 1
for data in range(len(datas)):
f.write(f'{counter}--> {datas[data].text}')
counter += 1
f.write('\n')
f.close()
driver.quit()