Парсер twitter ленты
-
Доброе время суток. Заранее спасибо всем откликнувшимся.
Нужно спарсить все твиты в ленте по определенному запросу. Смотрел обучающий урок, но с того времени, видимо, твиттер сильно поменялся и теперь там нет тех классов, которые представлены в видеоуроке. В исходном коде изначально отображается 8 твитов и по мере прокручивания ленты твиты подтягиваются запросом каким то. После 30 часов попыток и гугления, я понял что тупой для этого, поэтому прошу помощи и более знающих людей.
Подскажите, пожалуйста, как реализовать парсинг в твиттере? С чего начать, куда двигаться? Единственное, чем твиты в исходнике различаются - это в строке <div style="position: absolute; width: 100%; transform: translateY(109px); transition: opacity 0.3s ease-out 0s;"> параметр transform: translateY(109px); --изменяется именно число пикселей, которое в скобках, но как это применить я не понимаю.
Спасибо всем, кто окажет хоть какую то помощь.
-
@Evg185 said in Парсер twitter ленты:
Подскажите, пожалуйста, как реализовать парсинг в твиттере? С чего начать, куда двигаться?
Можете продолжить изучение видео-материала. Ещё можете почитать мануал по селекторам https://wiki.bablosoft.com/doku.php?id=ru:how_to_search_for_element
-
Появился более удобный метод поиска цикла элементов
https://www.youtube.com/watch?v=Lho2Ghd7hj8
-
@Fox но ведь данные каждый раз подгружаются по новому, в видео показано как статические данные парсить
-
Я сам пытался по разному - xpath тоже не работает. Работает только через css, но там так хитро устроен алгоритм, что нужные эллементы удаляются когда например через определенный интервал парсишь копии и затем удаляешь через удалить дубликаты из списка . Это если отписаться от тех на кого подписан и взаимная подписка. Что делать не знаю. Пробовал даже поиск по картинке, но этот модуль ищет сначала скрола, а как известно данные обновляются. Проскролил он значит минуту и все.
В общем тут нужно как то искать эллемент по содержанию других эллементов внутри - например есть div без класа, внутри него див с другими классами , например точно известно что в эллемента есть @имячеловека, его Фон белый и т.д , спарсить с реакта только так можно, на условии что как только эллемент появляется на экране и его параметр по Y больше чем предыдущего.
Вобще, как то можно организовать цикл на проверку по координатам Y? И вообще искать вложенные эллементы от внешнего дива? Типо новый вид поиска - по отправной точке, как например тут внешний div, в нем уже невзирая на смену основных div's от родительского искать по структуре компонента.
-
@novikov433 said in Парсер twitter ленты:
@Fox но ведь данные каждый раз подгружаются по новому, в видео показано как статические данные парсить
Что означает "подгружаются по новому"?
@novikov433 said in Парсер twitter ленты:
Я сам пытался по разному - xpath тоже не работает.
Я ещё ни разу не встречал ситуацию, когда к элементу нельзя было привязться через xpath.
Работает только через css, но там так хитро устроен алгоритм, что нужные эллементы удаляются когда например через определенный интервал парсишь копии и затем удаляешь через удалить дубликаты из списка . Это если отписаться от тех на кого подписан и взаимная подписка. Что делать не знаю.
Ни чего не понятно, но очень интересно
В общем тут нужно как то искать эллемент по содержанию других эллементов внутри - например есть div без класа, внутри него див с другими классами , например точно известно что в эллемента есть @имячеловека, его Фон белый и т.д , спарсить с реакта только так можно, на условии что как только эллемент появляется на экране и его параметр по Y больше чем предыдущего.
Вы только что описали xpath выражение
Вобще, как то можно организовать цикл на проверку по координатам Y? И вообще искать вложенные эллементы от внешнего дива? Типо новый вид поиска - по отправной точке, как например тут внешний div, в нем уже невзирая на смену основных div's от родительского искать по структуре компонента.
Что то вы мешаете мягкое с тёплым. Судя по вашему описанию, парсинг по xpath должен прекрасно справится с задачей
-
@Fox рабрался во всем . Сделал просто 5 раз нажатие на скрол вниз, что бы оставалось 5-8 данных которые повторяются в новой итерации