8 Stimmen

URL-Slicing mit Python

Ich arbeite mit einer großen Liste von URLs. Nur eine kurze Frage habe ich versuchen, einen Teil der URL herauszuschneiden, siehe unten:

http://www.domainname.com/page?CONTENT_ITEM_ID=1234&param2&param3

Wie könnte ich mir eine Scheibe abschneiden:

http://www.domainname.com/page?CONTENT_ITEM_ID=1234

Manchmal gibt es mehr als zwei Parameter nach der CONTENT_ITEM_ID und die ID ist jedes Mal anders, ich denke, es kann getan werden, indem Sie die erste & und dann schneiden Sie die Zeichen vor, dass &, nicht ganz sicher, wie dies zu tun tho.

Prost

0voto

Corey Goldberg Punkte 56036
import re
url = 'http://www.domainname.com/page?CONTENT_ITEM_ID=1234&param2&param3'
m = re.search('(.*?)&', url)
print m.group(1)

0voto

S.Lott Punkte 371691

Sehen Sie sich die urllib2 Dateiname Frage nach einer Diskussion zu diesem Thema.

Siehe auch die " Python Find Frage "Frage.

0voto

Jeremy Cantrell Punkte 24497

Diese Methode ist nicht von der Position des Parameters innerhalb der URL-Zeichenfolge abhängig. Dies könnte sicher noch verfeinert werden, aber es bringt den Punkt auf den Punkt.

url = 'http://www.domainname.com/page?CONTENT_ITEM_ID=1234&param2&param3'
parts = url.split('?')
id = dict(i.split('=') for i in parts[1].split('&'))['CONTENT_ITEM_ID']
new_url = parts[0] + '?CONTENT_ITEM_ID=' + id

0voto

Alien Life Form Punkte 1814

Eine uralte Frage, aber dennoch möchte ich anmerken, dass Abfrageparamenter auch durch ';' getrennt werden können, nicht nur durch '&'.

0voto

neutrinus Punkte 1669

Neben urlparse Außerdem gibt es aufrollen. , die IMHO eine bessere API hat.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X