J'essaie de gratter un peu de contenu (je suis très nouveau à Python) et je suis tombé sur une pierre d'achoppement. Le code que je suis en train de gratter est:Python BeautifulSoup analyse
<h2><a href="/best-sellers/sj-b9822.html">Spear & Jackson Predator Universal Hardpoint Saw - 22"</a></h2>
<p><span class="productlist_mostwanted_rrp">
Was: <span class="strikethrough">£12.52</span></span><span class="productlist_mostwanted_save">Save: £6.57(52%)</span></p>
<div class="clear"></div>
<p class="productlist_mostwanted_price">Now: £5.95</p>
Ce que je suis en train de gratter est le texte du lien (Lance & Jackson, etc) et le prix (5,95 £). Je l'ai regardé au sujet sur Google, la documentation BeautifulSoup et sur ce forum et j'ai réussi à extraire le « maintenant: £ 5.95 » en utilisant ce code:
for node in soup.findAll('p', { "class" : "productlist_grid_price" }):
print ''.join(node.findAll(text=True))
Cependant le résultat que je suis après est juste 5,95. J'ai aussi eu un succès limité en essayant d'obtenir le texte du lien (Lance & Jackson) en utilisant:
soup.h2.a.contents[0]
Cependant, bien sûr ce que revient le premier résultat.
Le résultat final que je visais est d'avoir les résultats ressemblent:
Spear & Jackson Predator Universal Hardpoint Saw - 22 5.95
etc
etc
Comme je cherche à exporter à un csv, je dois savoir comment mettre les données en 2 colonnes. Comme je dis je suis très nouveau à python alors j'espère que cela a du sens.
J'apprécie toute aide!
Un grand merci
Merci! Cela saisit le premier. Pourriez-vous m'informer de la façon dont je pourrais construire une boucle pour retourner tous les résultats, puisque ce code renvoie juste le premier, mais parfaitement. –
Cela dépend de leur emplacement dans le DOM (s'ils sont dans la même page). – jcollado
Oui, ils sont dans la même page. J'ai essayé de créer une boucle mais mes efforts ne méritent que le mépris. Encore assez nouveau pour la programmation en général! –