Привет, у меня есть сценарий селена (использующий firefox и geckodriver на Raspian), который в основном использует внешний сайт для загрузки активных историй для любого конкретного пользователя в Instagram:
def download_user_stories(self, user_name):
driver = self.driver
driver.get("https://storiesig.com/stories/"+user_name)
time.sleep(2)
for i in range(1,50):
try:
xpath = "//div[@class='jsx-1407646540 container']//article[" + str(i) + "]//div[3]//a[1]"
print(xpath)
link_location = driver.find_element_by_xpath(xpath)
link = link_location.get_attribute('href')
current_time = datetime.datetime.now()
corrected_time = current_time.strftime("%Y-%b-%d")
if '.mp4' not in link:
extension = '.jpg'
else:
extension = '.mp4'
location = '/Users/"my name"/desktop/'+ user_name + '/' + corrected_time + '-' + str(i) + extension
print (location)
urllib.urlretrieve(link,location)
except Exception as e:
print("went to except")
print (e)
break
Сначала я его просматривалтерминал и все работало нормально.Затем я запланировал это через crontab на raspberry pi, и он запустился, выдавая ошибки в текстовый файл, и я получил это:
working on "friends name" now
//div[@class='jsx-1407646540 container']//article[1]//div[3]//a[1]
/home/pi/Desktop/InstaScraper/Script/"friends name"/2019-Feb-21-1.jpg
//div[@class='jsx-1407646540 container']//article[2]//div[3]//a[1]
went to except
Message: Unable to locate element: //div[@class='jsx-1407646540 container']//article[2]//div[3]//a[1]
Так что он находит первую ссылку для загрузки, но не удается найти остальные, хотяЯ подтвердил, что для этого конкретного пользователя было больше для загрузки.Я также подтвердил , что элемент, который он не может найти в конце, - это ТОЛЬКО XPath следующего элемента для загрузки .Так что я озадачен тем, почему не найти историю именно там, где она должна быть.Самое странное, что он больше не работает нормально через терминал, даже если он изначально работал.Я не понимаю, что изменилось или почему это не сработало в crontab, как в терминале.
Еще одно интересное замечание: он правильно загружает все ссылки для первого пользователя в User_Name_List.txt, но не для всех остальных.(функция вызывается в цикле из другой функции в классе, которая имеет список имен пользователей)
Я гуглил это и думал об этом, и я просто не могу понять, что здесь не так.
Буду признателен за любую помощь и объяснение.
Примечание - вы можете перейти на Storiesig.com и проверить относительную систему XPath для различныхАктивная история (не основные) скачать ссылки самостоятельно, если вы думаете, что, возможно, именно в этом проблема.