Python + селен. Я не могу обновить DOM после прокрутки вниз - PullRequest
0 голосов
/ 26 апреля 2020
password = browser.find_element_by_name('passsword')

login.send_keys(мое имя oт instagram)
password.send_keys(мой пароль от instagram)
enter_but = browser.find_element_by_xpath("//button[@type='submit']").click()
time.sleep(5)

browser.get("https://www.instagram.com/oleshev/")

lenOfPage = browser.execute_script("window.scrollTo(0, document.body.scrollHeight);var lenOfPage=document.body.scrollHeight;return lenOfPage;")
time.sleep(2)
match = False
while not match:
    lastCount = lenOfPage
    lenOfPage = browser.execute_script("window.scrollTo(0, document.body.scrollHeight);var lenOfPage=document.body.scrollHeight;return lenOfPage;")
    time.sleep(5)
    link = None
    while not link:
        try:
            link = browser.find_element_by_xpath("//div[class='v1Nh3 kIKUG  _bz0w']")
            print('Yes!')
        except NoSuchElementException:
            time.sleep(2)
            print('o No')
    if lastCount == lenOfPage:
        match = True

time.sleep(5)
requiredHtml = browser.page_source
time.sleep(10)

soup = BeautifulSoup(requiredHtml, "html.parser")

with open("instaParse.txt",'w', encoding='utf-8') as myfile:
    myfile.write(str(soup))

Дело в том, что после прокрутки страницы вниз в DOM (в консоли разработчика) появляются новые элементы (новые посты с фотографиями или видео, так как речь идет об Instagram). В супе только 12 таких элементов выводятся в конце скрипта, когда их должно быть намного больше после прокрутки. Скрипт должен видеть сообщения с class = v1Nh3 kIKUG _bz0w. Я пытался получить их как-то в l oop, но только бесконечно "o Нет!"

...