J'utilise Beautiful Soup pour extraire des balises div spécifiques, et il semble que je ne puisse pas utiliser string simple matching.Expression régulière Python pour Belle Soupe
La page a des balises sous forme de
<div class="comment form new"...>
que je veux ignorer, et aussi quelques balises sous forme de
<div class="comment comment-xxxx...">
où les x représentent un nombre entier de longueur arbitraire , et les ellipses représentent un nombre arbitraire d'autres valeurs séparées par des espaces blancs (que je ne suis pas concerné). Je ne peux pas comprendre l'expression regex correcte, d'autant plus que je n'ai jamais utilisé la classe re de python.
En utilisant
soup.find_all(class_="comment")
trouve tous les tags commençant par le mot commentaire. Je l'ai essayé d'utiliser
soup.find_all(class_=re.compile(r'(comment)()(comment)'))
soup.find_all(class_=re.compile(r'comment comment.*'))
et beaucoup d'autres variations, mais je pense que je manque quelque chose évidente ici sur la façon dont le travail des expressions regex ou match(). Quelqu'un peut m'aider?
D'abord, utilisez-vous BS3 ou BS4? On a 'findAll', on a' find_all', ni 'findall' ... – abarnert
Désolé, BS4 - Je n'ai pas pu coller directement à partir de mon code, je vais éditer. – user1890572
Merde, parce que j'avais une réponse pour BS3 ... mais pour BS4, on dirait qu'il n'aime pas les espaces dans les classes peut-être? Ou peut-être que je ne connais pas assez BS4. Je peux correspondre '' comment'', mais pas ''commentaire comment''. Je vais regarder dedans. – abarnert