мои предыдущие вопросы были закрыты, но предлагаемый ответ мне не помогает. У комментариев в Instagram очень специфичное c поведение! Я знаю, как программно прокрутить сайт вниз, но с комментариями в Instagram это немного по-другому! Я был бы признателен, если бы мой вопрос не был закрыт сразу, потому что это действительно не помогает. Woule ba благодарен за помощь и не закрывает меня! Спасибо.
Вот и снова: я пытаюсь создать скребок, сохраняющий комментарии под постом в Instagram. Мне удается войти в инстаграм через мой код, чтобы я мог получить доступ ко всем комментариям в сообщении, но я, кажется, не могу прокрутить достаточно много раз, чтобы просмотреть все комментарии, чтобы очистить их все. Я получаю только около 20 комментариев каждый раз.
Может кто-нибудь помочь мне? Я использую селеновый вебдрайвер.
Спасибо за вашу помощь заранее! Будет здорово.
Это моя функция сохранения комментариев:
import time
from selenium.webdriver.firefox.options import Options
from selenium.webdriver import Firefox
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
class Instagram_comments():
def __init__(self):
self.firefox_options = Options()
self.browser = Firefox(options=self.firefox_options)
def get_comments(self, url):
self.browser.get(url)
time.sleep(3)
while True:
try:
self.load_more_comments = self.browser.find_element_by_class_name(
'glyphsSpriteCircle_add__outline__24__grey_9')
self.action = ActionChains(self.browser)
self.action.move_to_element(self.load_more_comments)
self.load_more_comments.click()
time.sleep(4)
self.body_elem = self.browser.find_element_by_class_name('Mr508')
for _ in range(100):
self.body_elem.send_keys(Keys.END)
time.sleep(3)
except Exception as e:
pass
time.sleep(5)
self.comment = self.browser.find_elements_by_class_name('gElp9 ')
for c in self.comment:
self.container = c.find_element_by_class_name('C4VMK')
self.name = self.container.find_element_by_class_name('_6lAjh').text
self.content = self.container.find_element_by_tag_name('span').text
self.content = self.content.replace('\n', ' ').strip().rstrip()
self.time_of_post = self.browser.find_element_by_xpath('//a/time').get_attribute("datetime")
self.comment_details = {'profile name': self.name, 'comment': self.content, 'time': self.time_of_post}
print(self.comment_details)
time.sleep(5)
return self.comment_details