Leitores como você ajudam a apoiar o MUO. Quando você faz uma compra usando links em nosso site, podemos ganhar uma comissão de afiliado.
A extração de HTML pode ser complicada, portanto, certifique-se de entender esse processo com um pouco de prática em Python.
O Twitter é uma das plataformas de mídia social mais influentes que já existiu. Milhões de pessoas, incluindo os principais políticos, celebridades e CEOs, usam a plataforma para compartilhar seus pensamentos todos os dias.
A guia de tendências é um dos melhores lugares para descobrir notícias em tempo real e o sentimento da mídia social. Você pode analisar e usar esses dados para planejar anúncios de marca, executar campanhas e aumentar as vendas em dobras. Mas como você pode obter as dez hashtags mais populares no Twitter?
O Processo de Construção de Algoritmo
O primeiro passo para construir qualquer programa é observar e entender as etapas necessárias para construir um raspador do Twitter. Eles são:
- Abra o Google Chrome.
- Visite a página de tendências do Twitter.
- Reúna as hashtags e o respectivo link da página.
- Salve os dados em uma planilha.
Isso serve como o algoritmo da declaração do problema.
Entendendo a página do Twitter
Você precisa saber como uma página da Web marca seus dados antes de extraí-los. Ajuda muito se você tiver uma boa compreensão noções básicas de HTML e CSS.
Siga estas etapas para descobrir como o Twitter representa uma hashtag de tendências e seu URL:
- Visita Página de tendências do Twitter. Você também pode navegar para Twitter.com → Explorar → Tendendo para visualizá-lo.
- Inspecione a coluna principal usando ferramentas de desenvolvimento do Chrome. Vá para Menu (3 pontos)>Mais ferramentas >Ferramentas de desenvolvimento e passe a ferramenta seletora de elementos sobre a área de tendências.
- A linha do tempo de tendências é uma div com um ária-rótulo atributo cujo valor é "Linha do Tempo: Explorar". Passe o mouse sobre a marcação no elementos painel para entender melhor a estrutura da página. Outro div armazena a hashtag/tópico de tendência. Use este div como um contador e repita para todos os divs na página que contém o tópico/hashtag de tendência. O conteúdo é armazenado em um período ou um par de elementos de extensão. Observe a guia aberta e observe a hierarquia. Você pode usar isso para construir uma expressão XPath. A expressão XPath para este elemento específico é:
Iterar e segmentar div[3], div[4], div[5] e assim por diante. Para as dez principais hashtags, o contador vai de 3 a 13. O XPath generalizado se torna:'//div[@aria-label="Linha do tempo: Explorar"]/div[1]/div[3]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
//div[@aria-label="Linha do tempo: Explorar"]/div[1]/div[{i}]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
- Clique em qualquer hashtag para entender o URL de suas páginas. Se você comparar as URLs, deve notar que apenas o parâmetro de consulta muda para corresponder ao nome da hashtag. Você pode usar esse insight para criar URLs sem realmente extraí-los.
Este projeto usa os seguintes módulos e ferramentas Python:
1. Módulo Pandas
Você pode use a classe Pandas DataFrame para armazenar as hashtags e seus respectivos links em formato tabular. Isso será útil quando se trata de adicionar esses conteúdos a um arquivo CSV que você pode compartilhar externamente.
2. Módulo de tempo
Use o módulo Time para adicionar um atraso ao programa Python para permitir que o conteúdo da página seja totalmente carregado. Este exemplo usa um atraso de 15 segundos, mas você pode experimentar e escolher um atraso apropriado para suas circunstâncias.
3. Módulo de Selênio
O Selenium pode automatizar o processo de interação com a web. Você pode usá-lo para controlar uma instância de um navegador da Web, abrir a página de tendências e rolar para baixo. Para instalar o Selenium em seu ambiente Python, abra seu terminal e executarpip instalar selênio.
4. Driver Web
Use um driver da web em combinação com o Selenium para interagir com o navegador. Existem diferentes drivers da Web disponíveis com base no navegador que você deseja automatizar. Para esta compilação, use o popular navegador Google Chrome. Para instalar o driver da web para Chrome:
- Verifique a versão do navegador que você está usando visitando o Cardápio (3 pontos) > Ajuda>Sobre Google Chrome.
- Observe a versão do navegador; neste caso, é 106.0.5249.62.
- Vá para sua terminal e digite pip install chromedriver-binary==version_number:
Se não houver versão correspondente, o pip mostrará uma lista das versões disponíveis; escolha o mais próximo da sua versão do Chrome.pip instalar chromedriver-binário==106.0.5249.62
Como construir o Twitter Scraper
Siga estas etapas para criar seu programa e obter hashtags de tendências em tempo real. Você pode encontrar o código-fonte completo neste Repositório GitHub.
- Importe os módulos necessários para o ambiente Python.
# importando os módulos necessários
de selênio importar webdriver
deselênio.webdriver.comum.porimportarPor
importar chromedriver_binary
importar tempo
importar pandas como pd - Crie um objeto para inicializar o ChromeDriver e iniciar o navegador Google Chrome usando o webdriver. Cromada() função.
# abra o navegador google chrome
navegador = webdriver. Cromada() - Abra a página de tendências do Twitter passando seu URL para o pegar() função.
# abra a página de tendências do Twitter
navegador.get('https://twitter.com/explore/tabs/trending') - Aplique um atraso para que o conteúdo da página seja totalmente carregado.
# atraso para carregamento do conteúdo da página
tempo.dormir(15) - Crie uma lista vazia para armazenar as hashtags e declare um loop que vai de 3 a 13 para corresponder à variável na expressão XPath anterior.
# inicializa a lista para armazenar trending topics e hashtags
trending_topic_content=[]# colete tópicos e hashtags na página de tendências do Twitter
para i no intervalo (3,13): - Use o encontrar_elemento() função e passe o seletor XPath para obter os trending topics e hashtags no Twitter:
caminho x = f'//div[@aria-label="Linha do tempo: Explorar"]/div[1]/div[{i}]/div[1]/div[1]/div[1]/div[1]/div[2]/span[1]'
trending_topic = browser.find_element (Por. XPATH, xpath)
trending_topic_content.acrescentar(trending_topic.texto) - Crie uma lista vazia para armazenar todas as URLs e declare um loop que percorra todas as hashtags.
Use o operador de fatia para omitir a hashtag para criar sua URL e substituir os espaços pela codificação de URL, %20. Adicione os links à lista.# crie URLs usando as hashtags coletadas
urls=[]
para i em trending_topic_content:se i.começa com("#"):
i = i[1:]
url='https://twitter.com/search? q=%23' + eu + '&src=trend_click'
outro:
URL = 'https://twitter.com/search? q=' + eu + '&src=trend_click'
url = url.replace("", "%20")
URLs.acrescentar(url) - Crie um Dicionário de pares chave-valor com chaves como hashtags e valores como seus URLs.
# crie um dicionário que tenha a hashtag e os URLs
dic={'Hashtag':trending_topic_content,'URL':urls} - Converta o dicionário não estruturado em um DataFrame tabular.
# converte o dicionário em um dataframe em pandas
df=pd. DataFrame (dic)
imprimir(df) - Salve o DataFrame em um arquivo CSV que você pode visualizar no Microsoft Excel ou processar posteriormente.
# converte o dataframe em formato de valor separado por vírgula sem números de série
df.to_csv("Twitter_HashTags.csv",índice=Falso)
Obtenha informações valiosas usando a raspagem da Web
A raspagem da Web é um método poderoso para obter os dados desejados e analisá-los para tomar decisões. Beautiful Soup é uma biblioteca impressionante que você pode instalar e usar para extrair dados de qualquer arquivo HTML ou XML usando Python.
Com isso, você pode raspar a Internet para obter manchetes de notícias em tempo real, preços de produtos, placares esportivos, valor das ações e muito mais.