Проверьте, является ли сообщение selenium instagram видео - PullRequest
1 голос
/ 14 июля 2020

У меня есть бот, который просматривает все сообщения пользователей и получает количество лайков и ссылку. Проблема в том, что код ломается, когда встречает видео.

def usermostlikedposts(self, username, nofposts):
        self.nav_user(username)
        for i in range(nofposts):
            try:
                post = self.browser.find_element_by_xpath('(//div[@class=\'eLAPa\']//parent::a)[{}]'.format(i+1))
                post.click()
                WebDriverWait(self.browser, 10).until(EC.presence_of_element_located((By.XPATH , '/html/body/div[4]/div[2]/div/article/div[3]/section[2]/div/div/button/span')))
                likes = self.browser.find_element_by_xpath('/html/body/div[4]/div[2]/div/article/div[3]/section[2]/div/div/button/span').get_attribute("innerHTML")
                link = post.get_attribute("href")
                self.likesposts[likes] = link
                x = self.browser.find_element_by_xpath('/html/body/div[4]/div[3]/button')
                x.click()
            except:
                pass

.

Я не знаю, как заставить это работать с видео, я хочу, чтобы бот получил количество просмотров вместо лайков, когда он встречает видео, но я не могу это реализовать. Я ищу способ проверить, является ли публикация видео, и написать код в соответствии с этим условием

1 Ответ

0 голосов
/ 14 июля 2020

Мне удалось решить:

def usermostlikedposts(self, username, nofposts):
        self.nav_user(username)
        for i in range(nofposts):
            try:
                post = self.browser.find_element_by_xpath('(//div[@class=\'eLAPa\']//parent::a)[{}]'.format(i+1))
                post.click()
                WebDriverWait(self.browser, 10).until(EC.presence_of_element_located((By.XPATH , '/html/body/div[4]/div[2]/div/article/div[3]/section[1]/span[3]/button')))
                try:
                    likes = self.browser.find_element_by_xpath('/html/body/div[4]/div[2]/div/article/div[3]/section[2]/div/div/button/span').get_attribute("innerHTML")
                    link = post.get_attribute("href")
                    self.likesposts[likes] = link
                except:
                    pass
                x = self.browser.find_element_by_xpath('/html/body/div[4]/div[3]/button')
                x.click()
            except:
                pass
...