En respuesta a un previous question, varias personas sugirieron que use BeautifulSoup para mi proyecto. He estado luchando con su documentación y simplemente no puedo analizarlo. ¿Puede alguien señalarme la sección en la que debería ser capaz de traducir esta expresión a una expresión BeautifulSoup?¿Cómo puedo traducir esta expresión XPath a BeautifulSoup?
hxs.select('//td[@class="altRow"][2]/a/@href').re('/.a\w+')
La expresión anterior es de Scrapy. Estoy tratando de aplicar la expresión regular re('\.a\w+')
al td class altRow
para obtener los enlaces desde allí.
También me gustaría obtener consejos sobre otros tutoriales o documentación. No pude encontrar ninguno.
Gracias por su ayuda.
Editar: Me gustaría encontrar en este page:
>>> soup.head.title
<title>White & Case LLP - Lawyers</title>
>>> soup.find(href=re.compile("/cabel"))
>>> soup.find(href=re.compile("/diversity"))
<a href="/diversity/committee">Committee</a>
Sin embargo, si nos fijamos en la fuente de la página "/cabel"
está ahí:
<td class="altRow" valign="middle" width="34%">
<a href='/cabel'>Abel, Christian</a>
Por alguna razón, los resultados de búsqueda son no visibles para BeautifulSoup, pero son visibles para XPath porque hxs.select('//td[@class="altRow"][2]/a/@href').re('/.a\w+')
captura "/ cabel"
Editar: cobbal: Todavía no está funcionando. Pero cuando busco esto:
>>>soup.findAll(href=re.compile(r'/.a\w+'))
[<link href="/FCWSite/Include/styles/main.css" rel="stylesheet" type="text/css" />, <link rel="shortcut icon" type="image/ico" href="/FCWSite/Include/main_favicon.ico" />, <a href="/careers/northamerica">North America</a>, <a href="/careers/middleeastafrica">Middle East Africa</a>, <a href="/careers/europe">Europe</a>, <a href="/careers/latinamerica">Latin America</a>, <a href="/careers/asia">Asia</a>, <a href="/diversity/manager">Diversity Director</a>]
>>>
devuelve todos los vínculos con la segunda letra "A", pero no los nombres de abogado. Por alguna razón, esos enlaces (como "/ cabel") no son visibles para BeautifulSoup. No entiendo por qué.
Ha intentado con comillas dobles en lugar de comillas simples: '...'. – jfs
por lo que puedo decir, BeautifulSoup no está analizando la página correctamente, soup.contents no da nada después de la etiqueta ' 'que está hacia el comienzo del documento. – cobbal