Создайте свой собственный парсер Twitter, чтобы получать популярные хэштеги с помощью Python
Парсинг HTML может быть затруднительным, поэтому убедитесь, что вы понимаете этот процесс, немного попрактиковавшись в Python.
Twitter — одна из самых влиятельных социальных сетей, когда-либо существовавших. Миллионы людей, включая ведущих политиков, знаменитостей и руководителей, используют платформу, чтобы каждый день делиться своими мыслями.
Вкладка «Тенденции» — одно из лучших мест, где можно узнать новости в реальном времени и настроения в социальных сетях. Вы можете анализировать и использовать эти данные для планирования рекламы бренда, проведения кампаний и многократного увеличения продаж. Но как получить десятку самых популярных хэштегов в Твиттере?
Процесс построения алгоритма
Первый шаг к созданию любой программы — это записать и понять шаги, необходимые для создания парсера Twitter. Они есть:
- Откройте Гугл Хром.
- Посетите страницу трендов Twitter.
- Соберите хэштеги и ссылки на соответствующие страницы.
- Сохраните данные в электронной таблице.
Это служит алгоритмом постановки задачи.
Понимание веб-страницы Twitter
Вам необходимо знать, как веб-страница размечает свои данные, прежде чем вы сможете их извлечь. Очень помогает, если вы хорошо разбираетесь в основах HTML и CSS.
Выполните следующие действия, чтобы выяснить, как Twitter представляет популярный хэштег и его URL-адрес:
- Посетите страницу трендов Twitter. Вы также можете перейти на страницу Twitter.com → Обзор → Тенденции, чтобы просмотреть его.
- Проверьте основной столбец с помощью Chrome Dev Tools. Перейдите в Меню (3 точки) > Дополнительные инструменты > Инструменты разработчика и наведите указатель мыши на инструмент выбора элементов над трендом. область.
Временная шкала тенденций – это div с атрибутом aria-label, значение которого равно "Временная шкала: Исследовать".
'//div[@aria-label="Timeline: Explore"]/div[1]/div[3]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
//div[@aria-label="Timeline: Explore"]/div[1]/div[{i}]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
Нажмите на любой хэштег, чтобы понять URL-адрес его страниц. Если вы сравните URL-адреса, вы заметите, что изменяется только параметр запроса, чтобы соответствовать имени хэштега. Вы можете использовать эту информацию для создания URL-адресов без их фактического извлечения.
Понимание и установка необходимых модулей и инструментов
В этом проекте используются следующие модули и инструменты Python:
1. Модуль Панды
Вы можете использовать класс Pandas DataFrame для хранения хэштегов и соответствующих им ссылок в табличном формате. Это будет полезно, когда дело доходит до добавления этого содержимого в файл CSV, которым вы можете поделиться с внешними пользователями.
2. Модуль времени
Используйте модуль Time, чтобы добавить задержку в программу Python, чтобы обеспечить полную загрузку содержимого страницы. В этом примере используется задержка в 15 секунд, но вы можете поэкспериментировать и выбрать задержку, подходящую для ваших обстоятельств.
3. Селеновый модуль
Selenium может автоматизировать процесс взаимодействия с сетью. Вы можете использовать его для управления экземпляром веб-браузера, открытия страницы трендов и прокрутки ее вниз. Чтобы установить Selenium в среду Python, откройте Терминал и выполните pip install selenium.
4. Веб-драйвер
Используйте веб-драйвер в сочетании с Selenium для взаимодействия с браузером. В зависимости от браузера, который вы хотите автоматизировать, доступны разные веб-драйверы. Для этой сборки используйте популярный браузер Google Chrome. Чтобы установить веб-драйвер для Chrome:
Проверьте версию используемого вами браузера, посетив Меню (3 точки) > Справка > О Google Chrome . .
Обратите внимание на версию браузера; в данном случае это 106.0.5249.62.
Перейдите в свой Терминал и введите pip install chromedriver-binary==version_number:
pip install chromedriver-binary==106.0.5249.62
Как создать парсер Twitter
Выполните следующие шаги, чтобы создать свою программу и получать актуальные хэштеги в режиме реального времени. Полный исходный код вы можете найти в этом репозитории GitHub.
-
Импортируйте необходимые модули в среду Python.
# importing the required modules from selenium import webdriver from selenium.webdriver.common.by import By import chromedriver_binary import time import pandas as pd
Создайте объект для инициализации ChromeDriver и запустите браузер Google Chrome с помощью функции webdriver.Chrome().
# open google chrome browser browser = webdriver.Chrome()
Откройте страницу трендов Твиттера, передав ее URL-адрес функции get() .
# open the trending page of Twitter browser.get('https://twitter.com/explore/tabs/trending')
Примените задержку, чтобы содержимое страницы загружалось полностью.
# delay for page content loading time.sleep(15)
Создайте пустой список для хранения хэштегов и объявите цикл, который выполняется от 3 до 13, чтобы соответствовать переменной в выражении XPath, полученном ранее.
# initialize list to store trending topics and hashtags trending_topic_content=[] # collect topics and hashtags on Twitter's trending page for i in range(3,13):
Используйте функцию find_element() и передайте селектор XPath, чтобы получить актуальные темы и хэштеги в Твиттере:
xpath = f'//div[@aria-label="Timeline: Explore"]/div[1]/div[{i}]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]' trending_topic = browser.find_element(By.XPATH, xpath) trending_topic_content.append(trending_topic.text)
Создайте пустой список для хранения всех URL-адресов и объявите цикл, который проходит через все хэштеги.
# create URLs using the hashtags collected urls=[] for i in trending_topic_content:
if i.startswith("#"): i = i[1:] url='https://twitter.com/search?q=%23' + i + '&src=trend_click' else: url = 'https://twitter.com/search?q=' + i + '&src=trend_click' url = url.replace(" ", "%20") urls.append(url)
Создайте словарь пары «ключ-значение» с ключами в качестве хэштегов и значениями в качестве их URL-адресов.
# create a dictionary that has both the hashtag and the URLs dic={'HashTag':trending_topic_content,'URL':urls}
Преобразуйте неструктурированный словарь в табличный DataFrame.
# convert the dictionary to a dataframe in pandas df=pd.DataFrame(dic) print(df)
Сохраните DataFrame в файл CSV, который можно просмотреть в Microsoft Excel или обработать дальше.
# convert the dataframe into Comma Separated Value format with no serial numbers df.to_csv("Twitter_HashTags.csv",index=False)
Получите ценную информацию с помощью парсинга веб-страниц
Парсинг веб-страниц — мощный метод получения нужных данных и их анализа для принятия решений. Beautiful Soup — впечатляющая библиотека, которую вы можете установить и использовать для извлечения данных из любого файла HTML или XML с помощью Python.
Благодаря этому вы можете просматривать Интернет, чтобы получать в режиме реального времени заголовки новостей, цены на продукты, спортивные результаты, стоимость акций и многое другое.