In risposta a uno previous question, diverse persone hanno suggerito di utilizzare BeautifulSoup per il mio progetto. Ho lottato con la loro documentazione e non riesco proprio ad analizzarlo. Qualcuno può indicarmi la sezione in cui dovrei essere in grado di tradurre questa espressione in un'espressione di BeautifulSoup?Come posso tradurre questa espressione XPath in BeautifulSoup?
hxs.select('//td[@class="altRow"][2]/a/@href').re('/.a\w+')
L'espressione sopra è da Scrapy. Sto cercando di applicare la regex re('\.a\w+')
a td class altRow
per ottenere i collegamenti da lì.
Apprezzerei anche i puntatori a qualsiasi altro tutorial o documentazione. Non sono riuscito a trovarne.
Grazie per il vostro aiuto.
Edit: sto guardando questo 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>
Eppure, se si guarda alla sorgente della pagina "/cabel"
c'è:
<td class="altRow" valign="middle" width="34%">
<a href='/cabel'>Abel, Christian</a>
Per qualche ragione, i risultati della ricerca sono non visibile a BeautifulSoup, ma sono visibili a XPath perché hxs.select('//td[@class="altRow"][2]/a/@href').re('/.a\w+')
rileva "/ cabel"
Modifica: cobbal: non funziona ancora. Ma quando cerco questo:
>>>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>]
>>>
restituisce tutti i collegamenti con il secondo carattere "a" ma non i nomi dell'avvocato. Quindi per qualche ragione quei link (come "/ cabel") non sono visibili a BeautifulSoup. Non capisco perché.
Hai provato le virgolette anziché le virgolette singole: '...'. – jfs
per quanto posso dire, BeautifulSoup non sta analizzando correttamente la pagina, soup.contents non restituisce nulla dopo il tag ' 'che è verso l'inizio del documento. – cobbal