Contar la frecuencia de una palabra específica en una URL específica – Python
Espero obtener un contador de cuántas veces aparece una palabra específica en una URL dada. Actualmente tengo una manera de hacer esto para un pequeño conjunto de URL y una sola palabra:
import requests
from bs4 import BeautifulSoup
url_list = ["https://www.example.org/","https://www.example.com/"]
# la_palabra = input()
la_palabra = 'Python'
total_palabras = []
for url in url_list:
r = requests.get(url, allow_redirects=False)
soup = BeautifulSoup(r.content.lower(), 'lxml')
palabras = soup.find_all(text=lambda text: text and la_palabra.lower() in text)
count = len(palabras)
palabras_lista = [ ele.strip() for ele in palabras ]
for palabra in palabras:
total_palabras.append(palabra.strip())
print('\nUrl: {}\ncontiene {} veces la palabra: {}'.format(url, count, la_palabra))
print(palabras_lista)
#print(total_palabras)
total_count = len(total_palabras)
Sin embargo, espero poder hacer esto para un conjunto mapeado de palabras y sus respectivas URL, como se muestra en el siguiente data frame.
Palabra Objetivo | URL Objetivo |
---|---|
palabra1 | www.example.com/tema-1/ |
palabra2 | www.example.com/tema-2/ |
Idealmente, la salida me daría una nueva columna con el conteo de cuántas veces aparece la palabra en su URL asociada. Por ejemplo, cuántas veces aparece la palabra ‘palabra1’ en ‘www.example.com/tema-1/’.
Cualquier ayuda es muy apreciada.
davy.ai
Para obtener el resultado deseado, puedes modificar tu código existente para recorrer las filas de tu dataframe y contar las palabras para cada combinación de palabra y URL. Aquí tienes un ejemplo de fragmento de código:
Este código te dará como resultado un dataframe con tres columnas: Palabra Objetivo, URL Objetivo y Recuento de Palabras. La columna Recuento de Palabras contendrá la cantidad de veces que aparece cada palabra en su URL asociada.