usar una scraping pagina mercado libre gratis extraer examples español datos con como python html

scraping - ¿Cómo puedo recuperar el título de la página de una página web usando Python?



web scraping mercado libre (8)

Esto es probablemente excesivo para una tarea tan simple, pero si planeas hacer más que eso, entonces es mejor comenzar con estas herramientas (mecanizar, BeautifulSoup) porque son mucho más fáciles de usar que las alternativas (urllib para obtener contenido y regexen o algún otro analizador para analizar html)

Enlaces: BeautifulSoup mecaniza

#!/usr/bin/env python #coding:utf-8 from BeautifulSoup import BeautifulSoup from mechanize import Browser #This retrieves the webpage content br = Browser() res = br.open("https://www.google.com/") data = res.get_data() #This parses the content soup = BeautifulSoup(data) title = soup.find(''title'') #This outputs the content :) print title.renderContents()

¿Cómo puedo recuperar el título de la página de una página web (etiqueta html del título) usando Python?


soup.title.string realidad devuelve una cadena Unicode. Para convertir eso en una cadena normal, debe hacer string=string.encode(''ascii'',''ignore'')


Siempre usaré lxml para tales tareas. También podrías usar beautifulsoup .

import lxml.html t = lxml.html.parse(url) print t.find(".//title").text


Usando HTMLParser :

from urllib.request import urlopen from html.parser import HTMLParser class TitleParser(HTMLParser): def __init__(self): HTMLParser.__init__(self) self.match = False self.title = '''' def handle_starttag(self, tag, attributes): self.match = True if tag == ''title'' else False def handle_data(self, data): if self.match: self.title = data self.match = False url = "http://example.com/" html_string = str(urlopen(url).read()) parser = TitleParser() parser.feed(html_string) print(parser.title) # prints: Example Domain


No es necesario importar otras bibliotecas. La solicitud tiene esta funcionalidad incorporada.

>> hearders = {''headers'':''Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0''} >>> n = requests.get(''http://www.imdb.com/title/tt0108778/'', headers=hearders) >>> al = n.text >>> al[al.find(''<title>'') + 7 : al.find(''</title>'')] u''Friends (TV Series 1994/u20132004) - IMDb''


Aquí hay una versión simplificada de la respuesta de @Vinko Vrsalovic :

import urllib2 from BeautifulSoup import BeautifulSoup soup = BeautifulSoup(urllib2.urlopen("https://www.google.com")) print soup.title.string

NOTA:

  • soup.title encuentra el primer elemento de título en cualquier parte del documento html

  • title.string asume que tiene solo un nodo hijo, y ese nodo hijo es una cadena

Para beautifulsoup 4.x , use una importación diferente:

from bs4 import BeautifulSoup


El objeto Mechanize Browser tiene un método title (). Por lo tanto, el código de esta publicación puede reescribirse como sigue:

from mechanize import Browser br = Browser() br.open("http://www.google.com/") print br.title()


Usando expresiones regulares

import re match = re.search(''<title>(.*?)</title>'', raw_html) title = match.group(1) if match else ''No title''