10
votes

Utilisation de magnifiquesSoup pour analyser les lignes séparées par des balises de
?

J'ai une page qui ressemble à ceci:

Company A<br />
123 Main St.<br />
Suite 101<br />
Someplace, NY 1234<br />
<br />
<br />
<br />
Company B<br />
456 Main St.<br />
Someplace, NY 1234<br />
<br />
<br />
<br />


0 commentaires

5 Réponses :


2
votes

Une fois ce fragment HTML, utilisez simplement une regex pour remplacer
suivi d'une nouvelle ligne en option par une seule nouvelle ligne, puis divisée sur plusieurs nouvelles lignes. Cela devrait entraîner plusieurs paragraphes individuels que vous pouvez traiter manuellement.


5 commentaires

Merci pour la réponse, mais malheureusement, ce n'est pas aussi simple que d'utiliser une regex. J'ai simplifié le document ci-dessus pour mieux illustrer ma question. Le document réel a un mélange de balises de formatage HTML et similaires.


Mais vous ne Care sur le document, juste la pièce séparée par
tags. Utilisez BeatialSoup pour extraire la première partie.


Je ne sais pas pourquoi quelqu'un a révélé votre réponse; J'apprécie l'aide. Je vais essayer quelques idées basées sur votre suggestion. J'espérais juste que Beaulsoupe aurait éliminé le besoin d'analyses manuelles. Merci.


Beautifulsoup est bon pour les tags qui traitent de la structure et du style, mais
ne tombent pas dans l'une ou l'autre de ceux-ci.


Bien que j'aurais probablement préféré travailler avec la réponse de Michal, je ne l'ai pas vu avant de terminer mon projet. J'ai pu faire ce dont j'avais besoin d'utiliser votre suggestion. Merci.



0
votes

Vous pouvez faire un peu de manipulation avant tout. Par exemple, changez toutes les nouvelles lignes à des blancs, puis substituez 2 occurrences et plus de
code> à un autre délimiteur comme | code>. Après cela, vous pouvez obtenir vos champs.

$ ./python.py
Company A<br />123 Main St.<br />Suite 101<br />Someplace, NY 1234|Company B<br />456 Main St.<br />Someplace, NY 1234|


0 commentaires

0
votes

Peut-être que vous pourriez utiliser cette fonction: xxx pré>

ajoutez quelque chose à vérifier pour être un
code> étiquette ou nouvelle ligne: p>

[[u'Company A'],
 [<br />],
 [u'\n123 Main St.'],
 [<br />],
 [u'\nSuite 101'],
 [<br />],
 [u'\nSomeplace, NY 1234'],
 [<br />, u'\n', <br />, u'\n', <br />, u'\n', <br />],
 [u'\nCompany B'],
 [<br />],
 [u'\n456 Main St.'],
 [<br />],
 [u'\nSomeplace, NY 1234'],
 [<br />, u'\n', <br />, u'\n', <br />, u'\n', <br />]]


0 commentaires

6
votes

Vous devez examiner l'attribut tstrings trouvé dans les balises, puis utilisez "\ n" .join () à ce sujet.


0 commentaires

0
votes

J'ai une question plus mince .Ce comment j'ai résolu xxx


0 commentaires