1. Post und gleich ne dumme Frage *g*
Ich lasse mit den Modulen "BeautifulSoup", "html2text" und "urllib2" diverse Links aus einem Menü auslesen. Diese Kategorien besitzen nun Unterkategorien.
Das Auslesen der Hauptkategorien ist nicht sonderlich schwer, doch die Unterkategorien wollen nicht so recht.
Mit dem Pattern
Code: Alles auswählen
linkPattern = 'href="(.*?)"'
Schematisch sind diese etwa so aufgebaut:
file.php?x=katId&sid=wasweisich&sonstiges=bla
Die Unterkategoren haben einen ähnlichen Aufbau:
file.php?x=katId&y=katId2&sid=wasweisich&sonstiges=bla
Oder auch:
file.php?y=katId2&x=katId&sid=wasweisich&sonstiges=bla
Die Links der Kategorien lassen sich prima auslesen, mit print erhalte ich diese Ausgabe:
Doch nun das Hauptproblem: Ich benötige hier nur Links, die die Parameter x UND y enthalten.['/shop/migal/limashop0/menu.php?x=0&sid=48885fcd63a5f&iproj=limainst&isprach=&adz=&mit1aufruf=1&mitstrich=0',
'/shop/migal/limashop0/menu.php?y=16&x=0&sid=48885fcd63a5f&iproj=limainst&isprach=&adz=&mit1aufruf=1&mitstrich=0',
'/shop/migal/limashop0/menu.php?y=17&x=0&sid=48885fcd63a5f&iproj=limainst&isprach=&adz=&mit1aufruf=1&mitstrich=0',
'/shop/migal/limashop0/menu.php?y=18&x=0&sid=48885fcd63a5f&iproj=limainst&isprach=&adz=&mit1aufruf=1&mitstrich=0']
Dazu hab ich diesen regulären Ausdruck gebastelt:
Code: Alles auswählen
subCatPattern = '(.*?)y=([0-9]{1,})&x=([0-9]{1,})(.*)|(.*?)x=([0-9]{1,})&y=([0-9]{1,})(.*)'
Code: Alles auswählen
subMenuTemp = re.findall (linkPattern, soupCats)
subMenuTemp = re.findall (subCatPattern, str (subMenuTemp) )
print subMenuTemp
Ja, jetzt hab ich Anstatt den Links zu den Unterkategorien die Links zu den Dateien und die Parameter x und y getrennt. Theoretisch könnte ich diese Teile zusammensetzen, doch die Parameter x und y sind nicht immer in der gleichen Reihenfolge gegeben.[("['/shop/migal/limashop0/menu.php?x=0&sid=4888609e3de12&iproj=limainst&isprach=&adz=&mit1aufruf=1&mitstrich=0',
'/shop/migal/limashop0/menu.php?", '16', '0', "&sid=4888609e3de12&iproj=limainst&isprach=&adz=&mit1aufruf=1&mitstrich=0',
'/shop/migal/limashop0/menu.php?y=17&x=0&sid=4888609e3de12&iproj=limainst&isprach=&adz=&mit1aufruf=1&mitstrich=0',
'/shop/migal/limashop0/menu.php?y=18&x=0&sid=4888609e3de12&iproj=limainst&isprach=&adz=&mit1aufruf=1&mitstrich=0']", '', '', '', '')]
Wenn jemand die Lösung weiß oder mit ansonsten helfen kann, würde ich mich sehr freuen
Wenn nötig, könnte ich die Datei auch zur Verfügung stellen