css селектор для поста Instagram вместе с комментариями не работает - PullRequest
1 голос
/ 30 марта 2020

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

driver.get("https://www.instagram.com/p/B-Sj7CggmHt/")
element = driver.find_element_by_css_selector("div._97aPb")

Я хочу, чтобы это работало для страницы любого сообщения и любого пользователя Instagram, но, похоже, что xpath для поста вместе с комментариями меняется. Как я могу найти объединенный блок изображения + комментарии независимо от того, какое сообщение это? Был бы признателен за любую помощь, спасибо.

Я также хотел бы иметь возможность индивидуально указывать на изображение и индивидуально указывать на комментарии. Я просмотрел несколько пользовательских профилей и несколько постов, но похоже, что оба xpaths и css селекторы меняются. Буду также признателен за руководство по любому чтению или ресурсам, где я могу научиться правильно указывать на различные html элементы.

1 Ответ

1 голос
/ 30 марта 2020

Вы можете попробовать выбрать на основе структуры верхнего уровня. Если присмотреться, всегда есть тег article, а затем фотография находится в 4-м делении, прямо под заголовком.

enter image description here

Вы можете сделать это с BeautifulSoup примерно так:

from BeautifulSoup import BeautifulSoup as soup 
article = soup.find('article')
divs_in_article = article.find_all('div')

divs_in_article[3] должны иметь данные ты ищешь. Если BeautifulSoup захватывает погружения под первым тегом header, возможно, вам придется проявить творческий подход и сначала пропустить этот тег. Я бы сам попробовал, но сейчас у меня не работает ChromeDriver.

В качестве альтернативы вы можете попробовать:

images = soup.find_all('img')

, чтобы получить все теги изображений на странице. Это тоже может сработать.

BeautifulSoup имеет множество удобных методов, позволяющих вам помечать объекты на основе структуры. Взгляните на , идущие туда-сюда , , идущие вбок , , понижающиеся и , повышающиеся . Вы должны быть в состоянии различить структуру, используя инструменты разработчика в вашем браузере, а затем придумать способ выбрать коллекции, которые вас интересуют, для комментариев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...