tutorial - web scraping python examples
¿Es posible que BeautifulSoup funcione de una manera que no distinga mayúsculas y minúsculas? (4)
Estoy tratando de extraer Meta Description para páginas web buscadas. Pero aquí estoy enfrentando el problema de la sensibilidad a los casos de BeautifulSoup.
Como algunas de las páginas tienen <meta name="Description
y algunas tienen <meta name="description
.
Mi problema es muy similar al de Question on Stackoverflow
La única diferencia es que no puedo usar lxml. Tengo que seguir con Beautifulsoup.
¿Una expresión regular? Ahora tenemos otro problema .
En su lugar, puede pasar en un lambda:
soup.findAll(lambda tag: tag.name.lower()==''meta'',
name=lambda x: x and x.lower()==''description'')
( x and
evita una excepción cuando el atributo de name
no está definido para la etiqueta)
Con bs4 usa lo siguiente:
soup.find(''meta'', attrs={''name'': lambda x: x and x.lower()==''description''})
Con pequeños cambios funciona.
soup.findAll(''meta'', attrs={''name'':re.compile("^description$", re.I)})
Puede darle a BeautifulSoup una expresión regular con la cual comparar los atributos. Algo como
soup.findAll(''meta'', name=re.compile("^description$", re.I))
podría hacer el truco Cribbed de los documentos de BeautifulSoup .