Requisito previo: Implementar Web Scraping en Python con BeautifulSoup
En este artículo, entenderemos cómo podemos extraer todos los enlaces de una URL o un documento HTML usando Python.
Bibliotecas requeridas:
- bs4 (BeautifulSoup): es una biblioteca en python que facilita el raspado de información de las páginas web y ayuda a extraer los datos de los archivos HTML y XML. Esta biblioteca debe descargarse externamente, ya que no viene fácilmente con el paquete de Python. Para instalar esta biblioteca, escriba el siguiente comando en su terminal.
pip install bs4
- requests: esta biblioteca permite enviar requests HTTP y obtener el contenido de la página web muy fácilmente. Esta biblioteca también debe descargarse externamente, ya que no viene fácilmente con el paquete de Python. Para instalar esta biblioteca, escriba el siguiente comando en su terminal.
pip install requests
Pasos a seguir:
- Importe las bibliotecas requeridas (bs4 y requests)
- Cree una función para obtener el documento HTML de la URL usando el método request.get() pasándole la URL.
- Cree un objeto Parse Tree, es decir, un objeto de sopa usando el método BeautifulSoup() , pasándole el documento HTML extraído anteriormente y el analizador HTML integrado de Python.
- Use la etiqueta a para extraer los enlaces del objeto BeautifulSoup.
- Obtenga las URL reales del formulario de todos los objetos de etiquetas de anclaje con el método get() y pásele el argumento href .
- Además, puede obtener el título de las URL con el método get() y pasarle el argumento del título .
Implementación:
Python3
# import necessary libraries from bs4 import BeautifulSoup import requests import re # function to extract html document from given url def getHTMLdocument(url): # request for HTML document of given url response = requests.get(url) # response will be provided in JSON format return response.text # assign required credentials # assign URL url_to_scrape = "https://practice.geeksforgeeks.org/courses/" # create document html_document = getHTMLdocument(url_to_scrape) # create soap object soup = BeautifulSoup(html_document, 'html.parser') # find all the anchor tags with "href" # attribute starting with "https://" for link in soup.find_all('a', attrs={'href': re.compile("^https://")}): # display the actual urls print(link.get('href'))
Producción:
Publicación traducida automáticamente
Artículo escrito por girishthatte y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA