Top.Mail.Ru
Ответы

Не работает ссылка 2gis на парсере

Делаю парсер для получение данных о компаниях 2гиса и наткнулся на проблему парсер после 5 странице повторяется, долго искал причину и понял что проблема в 2гисе, ссылка на 6+ страницу просто не работает пример
https://2gis.kz/astana/search/стоматология/rubricId/222/page/2?m=71.443111,51.129548/11
https://2gis.kz/astana/search/стоматология/rubricId/222/page/10?m=71.443111,51.129548/11

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Гуру

Проблема, вероятно, связана с тем, что 2ГИС использует AJAX-загрузку (динамическую подгрузку) контента при прокрутке страницы. Это означает, что контент на следующих страницах не загружается сразу же при загрузке первой страницы, а загружается только при прокрутке страницы до конца.

Чтобы решить проблему, вы можете использовать библиотеку для автоматической прокрутки страницы до конца. Например, вы можете воспользоваться библиотекой Selenium, которая позволяет эмулировать действия пользователя в браузере.

Если вы используете Python, вы можете установить библиотеку Selenium командой:

pip install selenium

Затем в вашем парсере вы можете использовать следующий код для автоматической прокрутки страницы до конца и загрузки контента:

123456789101112131415161718192021222324252627282930313233
 python  
 
from selenium import webdriver  
 
  
 
driver = webdriver.Chrome()  # перед этим необходимо установить драйвер для браузера, например Chrome  
 
  
 
url = 'https://2gis.kz/astana/search/стоматология/rubricId/222/page/2?m=71.443111,51.129548/11'  
 
driver.get(url)  
 
  
 
last_height = driver.execute_script("return document.body.scrollHeight")  
 
while True:  
 
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")  
 
    new_height = driver.execute_script("return document.body.scrollHeight")  
 
    if new_height == last_height:  
 
        break  
 
    last_height = new_height  
 
      
 
# теперь можно извлекать информацию со страницы  


Этот код автоматически прокрутит страницу до конца и подгрузит весь контент, пока не будет достигнут конец списка. Затем вы можете извлечь необходимую информацию со страницы с помощью парсера.