2 votes

Obtenir l'élément par classe requests_html

J'essaie d'analyser Quora et de récupérer le texte à l'intérieur d'un élément par sa classe CSS. Par exemple, le HTML autour de la question ressemble à ceci :

<p class="q-text qu-display--block qu-wordBreak--break-word qu-textAlign--start" style="box-sizing: border-box; margin-bottom: 1em; overflow-wrap: anywhere; direction: ltr;">
<span style="font-weight: normal; font-style: italic; background: rgba(0, 0, 0, 0) none repeat scroll 0% 0%;">
Thanks for A2A!
</span>
</p>

Comment puis-je récupérer le texte "Merci pour l'A2A" à l'intérieur de ce fichier ? Voici ce que j'ai actuellement :

from requests_html import HTMLSession

url = 'https://www.quora.com/What-is-the-best-case-of-You-just-picked-a-fight-with-the-wrong-person-that-youve-witnessed'

r = session.get(url)

r.html.render(sleep=1, keep_page=True, scrolldown=1)

videos = r.html.find('#q-text qu-display--block qu-wordBreak--break-word qu-textAlign--start')

print(videos.text)

1voto

Oleksii Tambovtsev Points 1022

Vous devriez essayer :

videos = r.html.find('.q-text.qu-display--block.qu-wordBreak--break-word.qu-textAlign--start')

au lieu de

videos = r.html.find('#q-text qu-display--block qu-wordBreak--break-word qu-textAlign--start')

Vous pouvez en savoir plus sur le sélecteur de classes multiples ici .

0voto

Rahul Points 4204

Vous confondez id et class selector.

Voici un exemple de votre code.

from requests_html import HTMLSession

session = HTMLSession()

url = 'https://www.quora.com/What-is-the-best-case-of-You-just-picked-a-fight-with-the-wrong-person-that-youve-witnessed'
r = session.get(url)
r.html.render(sleep=1, keep_page=True, scrolldown=1)
videos = r.html.find('.q-text.qu-display--block.qu-wordBreak--break-word.qu-textAlign--start')
print(videos)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X