Я пытаюсь очистить сообщение Instagram в учетной записи, но всякий раз, когда я говорю ему прокрутить вниз, предыдущие ссылки исчезают и появляются новые, но никогда не все в одном и том же месте, и теперь он всегда фиксирует только 29 из 1100 сообщений.
while(count<10):
for i in range(1,2):
#.execute_script("window.scrollTo(0, document.body.scrollHeight);")
self.browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
print('.', end = "",flush=True)
time.sleep(2)
elements = self.browser.find_elements_by_xpath("//div[@class='v1Nh3 kIKUG _bz0w']")
hrefElements = self.browser.find_elements_by_xpath("//div[@class='v1Nh3 kIKUG _bz0w']/a")
elements_link = [x.get_attribute("href") for x in hrefElements]
i = 1
unique = 1
text_file = open("Passed.txt", "r")
lines = text_file.readlines()
text_file.close()
for elements in elements_link:
print(str(i)+'.',end = "",flush=True)
found = self.found(elements,lines)
if found==True:
pass
else:
with open('Passed.txt','a') as f:
f.write(elements+'\n')
unique+=1
i+=1
count+=1
print('-----------------------------------------------')
print('No. of unique Posts Captured : '+ str(unique))
print('-----------------------------------------------')
Это мой код для загрузки сообщений и захвата ссылок из сообщений и сохранения их в другом файле, чтобы мне не приходилось каждый раз запускать его заново. найденная функция
` def found(self,key,lines):
for i in lines:
if i == key + '\n':
return True
else:
return False
`
Я пытаюсь захватить 1100 сообщений
вот что происходит каждый раз, когда он прокручивается вниз
затем прокрутите вниз это изменение до
хорошо, конечно, держись .. позвольте мне настроить его
Вы должны сначала найти ссылки, а затем прокрутить страницу вниз, чтобы сохранить ссылки, прокрутить страницу и получить ссылки, которые отображаются при прокрутке страницы. Таким образом вы сохраните также ссылки, которые исчезают при прокрутке страницы. Вот пример:
wait = WebDriverWait(self.browser, 10)
links = []
number_of_posts = 1100
while True:
hrefElements = wait.until(ec.visibility_of_all_elements_located((By.XPATH, "//div[@class='v1Nh3 kIKUG _bz0w']/a")))
elements_link = [x.get_attribute("href") for x in hrefElements]
for link in elements_link:
if link not in links:
links.append(link)
self.browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
self.browser.implicitly_wait(5)
if len(links) >= number_of_posts:
break
links = links[:number_of_posts]
with open('Passed.txt','a') as f:
for link in links:
f.write(elements+'\n')
Привет, я пробовал, но он постоянно дает одни и те же ссылки снова и снова. :(
эй, спасибо... это действительно сработало с небольшой настройкой !!
Пожалуйста! Если хотите, можете сказать, что изменить, поэтому я отредактирую ответ 😀
конечно, хм, ты добавишь сюда all_link=[] for link in elements_link: if link not in all_link: all_link.append(link) self.browser.execute_script('window.scrollTo(0,document.body.scrollHeight)') self.browser.implicitly_wait(5)
Чтобы улучшить свой вопрос и сделать его воспроизводимым, предоставьте код.