Селен не может получить весь элемент в Instagram - PullRequest
1 голос
/ 02 ноября 2019

Я создаю скрипт, использующий Python selenium для очистки пользовательского поста в Instagram. если у пользователя 62 сообщения, я хочу получить все 62 сообщения.

Я пытался прокрутить вниз, пока все сообщения не были загружены, и получить элемент / сообщение с использованием xpath и его работ. но только 29 элементов / записей, не все из 62 элементов / записей.

    driver.get("https://instagram.com/celmirashop/")

    #scroll until all post loaded
    scroll()
    wait = WebDriverWait(driver, 15)
    wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "div.eLAPa")))

    time.sleep(30)

    #getting list cards of posts
    list_cards = driver.find_elements_by_xpath("//*[@class='v1Nh3 kIKUG  _bz0w']")
    print(len(list_cards))

, если у пользователя 62 сообщения, я хочу получить элемент из 62 (всех) сообщений

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

при прокрутке Instagram покажет новые 12 изображений, но Instagram удалит 12 пропущенных изображений. Я нашел решение, сохранив 12 изображений при прокрутке (каждый прокрутить вниз). поэтому, прежде чем instagram удалите пропущенные 12 изображений, я сохранил эти изображения на переменную

driver.get("https://instagram.com/celmirashop/")


semua_url_lengkap = []
semua_url_post = []
nomor=1
for i in range(50):
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    print(nomor)
    nomor+=1
    #mendapatkan list tiap cards update status
    article = driver.find_element_by_tag_name("article")
    list_cards = article.find_elements_by_tag_name("a")

    for item in list_cards:

        url_lengkap=item.get_attribute("href")
        semua_url_lengkap.append(url_lengkap)

        segmen = url_lengkap.rsplit('/', 2)
        semua_url_post.append(segmen[1])


print(len(semua_url_post))
print(semua_url_post)
0 голосов
/ 02 ноября 2019

Они разрабатывают приложение таким образом, что его трудно очистить. Элементы загружаются лениво, так что при прокрутке некоторые элементы тоже могут исчезнуть.

Я бы сказал, используйте универсальный xpath и неизменяющийся, как //a//img, потому что они снова изменят имена классов на случайные.

Кроме того, поскольку у вас уже есть метод прокрутки, начните с начала. Зарегистрируйте все элементы и прокрутите еще немного, войдите снова и очистите еще немного. Включите цикл, пока не найдете конец элемента страницы, например //footer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...