with tutorial soup scraping info how from examples businesses beautiful and python beautifulsoup

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 .