Python opération de chaîne, d'un extrait du texte entre les balises html
J'ai une chaîne de caractères:
<font face="ARIAL,HELVETICA" size="-2">
JUL 28 </font>
(il ne sort plus de deux lignes, donc il doit y avoir un \n dans.
Je souhaite extraire la chaîne de caractères qui est entre le <font></font>
balises. Dans ce cas, c'est JUIL 28, mais il pourrait être une autre date ou un autre nombre.
1) Le meilleur moyen d'extraire de la valeur entre les balises de polices? Je pensais que je pouvais tout extraire dans entre ">
et </
.
edit: deuxième question supprimée.
Remarque, le <font face="........> balise n'est pas TOUJOURS le même.
Cela devrait probablement être de deux questions distinctes..
Vous avez probablement raison. Nous allons ignorer le second. Je vais vous inquiéter à ce sujet plus tard.
Cela devrait probablement être de deux questions distinctes..
Vous avez probablement raison. Nous allons ignorer le second. Je vais vous inquiéter à ce sujet plus tard.
OriginalL'auteur Flux Capacitor | 2011-10-27
Vous devez vous connecter pour publier un commentaire.
Alors qu'il peut être possible de parser HTML arbitraire avec des expressions régulières, c'est souvent un piège mortel. Il existe d'excellents outils pour l'analyse de code HTML, y compris BeautifulSoup, qui est une lib Python qui peut gérer cassé ainsi que de bonnes HTML assez bien.
Ensuite, vous avez juste besoin d'analyser la date:
Un mot d'avertissement: Mon deuxième argument de
strptime
ci-dessus est en fait un jeu de paramètres régionaux spécifiques exemple. Veuillez consulter la documentation pour plus de détails si vous avez besoin d'un jeu de paramètres régionaux-agnostique ou des paramètres régionaux différents de la solution.OriginalL'auteur kojiro
Vous avez un tas d'options ici. Vous pouvez aller pour un analyseur xml comme lxml, même si vous semblez vouloir un domaine spécifique de la solution. J'irais avec un multiligne regex:
Maintenant que vous avez
text
, vous pouvez la transformer en une date assez facilement:Merci! J'avais vu quelque chose de similaire avec les expressions régulières dans une autre question, mais n'a pas réussi à le faire fonctionner. Votre solution a fonctionné parfaitement pour moi. L'inconvénient est que je ne sorte de comprendre ce qui se passe avec elle.
OriginalL'auteur fahhem
Ou, vous pouvez simplement utiliser Belle Soupe:
OriginalL'auteur Óscar López
Grep est une option?
La (.*) doit correspondre à votre contenu.
désolé alors je ne pouvais pas mieux vous aider. vous pouvez toujours utiliser le re (expression régulière) de la bibliothèque de saisir la même chose.
Eh bien, vous pourriez utiliser des sous-processus et continuer à exécuter la commande
OriginalL'auteur AnthonyHurst
Utilisation Scrapy de XPath sélecteurs comme documenté http://doc.scrapy.org/en/0.10.3/topics/selectors.html
Alternativement, vous pouvez utiliser un analyseur HTML comme BeautifulSoup surtout si souhaitez utiliser le document dans un objet.
http://pypi.python.org/pypi/BeautifulSoup/3.2.0
OriginalL'auteur Victor Olex
Python dispose d'une bibliothèque appelée
HTMLParser
. Voir aussi la question suivante posté dans qui est très similaire à ce que vous recherchez:Comment puis-je utiliser le python HTMLParser bibliothèque pour extraire des données à partir d'un certain balise div?
OriginalL'auteur yasouser