2010-12-01 10 views
0

In einer Webseite habe ich die folgenden Elemente:Wie man onclick Text gewinnt?

<a href="#" onClick="window.open('/link.php?webpage=45980a6f91ac0c850745e0500d612172" class="pagelink" >Page 1</a> 
<a href="#" onClick="window.open('/link.php?webpage=45980a6f91ac0c850745e05676787895" class="pagelink" >Page 2</a> 
<a href="#" onClick="window.open('/link.php?webpage=45980a6f91ac0c85786787666456fgg3" class="pagelink" >Page 3</a> 
<a href="#" onClick="window.open('/link.php?webpage=45980a6f91ac0c850734234324756767" class="pagelink" >Page 4</a> 
... 

.

und ich brauche den Text in der window.open Funktion aller A-Tags der Klasse "pagelink" abzurufen:

/link.php?webpage=45980a6f91ac0c850745e0500d612172 
/link.php?webpage=45980a6f91ac0c850745e05676787895 
/link.php?webpage=45980a6f91ac0c85786787666456fgg3 
/link.php?webpage=45980a6f91ac0c850734234324756767 

Wie kann ich dies tun, mit Python?

+0

möglich Duplikat von [Wie diese Elemente von einer Webseite abgerufen werden?] (Http://stackoverflow.com/questions/4328167/how-to-retrieve-these-elements-from-a-webpage) – user225312

+0

Du bist Aufruf eines PHP-Skripts von Ihrem 'onClick'; das könnte schwierig sein, weißt du, lies von Python ... – chrisaycock

+0

@chrisaycock: Ja, das hat mich auch verwirrt, bis ich merkte, dass er * Quelltext * analysiert, keine laufende Seite. Eine kleine Klärung in der Frage hätte geholfen. – Hollister

Antwort

1
from html.parser import HTMLParser 

class MyHTMLParser(HTMLParser): 

    def handle_starttag(self, tag, attrs): 
     attr = dict(attrs) 
     if attrs["class"] == "pagelink": 
      add_to_result(attrs["onclick"]) 

ersetzen add_to_result mit Ihrem Aggregations Objekt (z Liste) und den tatsächlichen Code, und entfernen Sie dann nur window.open von Ergebnissen führt.

0

Diese Frage wurde bereits beantwortet here. Sie müssen HTML analysieren, um beliebige Daten zu erhalten, die Sie möglicherweise benötigen. Das Parsing wird mit Beautiful Soup gemacht.

Natürlich könnte jemand den Code wie er ist, aber das ist kein Spaß, oder?

Also noch einmal, müssen Sie in der Dokumentation nachlesen :)

Verwandte Themen