2016-04-29 6 views
0

Ich möchte einige URL analysieren und die Website besuchen und weitere Daten verschrotten.URL für Scraping-Aufgaben analysieren

Grundsätzlich meine aktuellen Code ist:

i = 9 
while(i < 118): 
    dict = {'start': i} 
    url1 = urllib.urlencode(dict) 
    url2 = urlparse.urljoin('http://intelligencesquaredus.org/debates/past-debates ', url1) 
    print url2 
    i = i + 9 

Welche Ergebnisse liefert

http://intelligencesquaredus.org/debates/past-debates/start=9 
http://intelligencesquaredus.org/debates/past-debates/start=18 
http://intelligencesquaredus.org/debates/past-debates/start=27 

Aber ich möchte die Verbindung

http://intelligencesquaredus.org/debates/past-debates?start=9

Jede Hilfe würde geschätzt sein. Vielen Dank im Voraus

+0

Was genau wollen Sie? Sie haben eine while-Schleife, deshalb haben Sie ein Ergebnis mit vielen Links. –

+0

Ergebnisse mit vielen Links ist in Ordnung, das ist das beabsichtigte Verhalten.Ich brauche nur das Format, um korrekt zu sein.Bitte überprüfen Sie noch einmal. –

+0

ok du willst das '' '' anstelle von '/'? –

Antwort

0

Verwendung:

url2=('?'.join(('http://intelligencesquaredus.org/debates/past-debates '+url1).split(' '))) 

In dem obigen Code-Schnipsel, Ihre nehmen Sie die URL als String und das Hinzufügen der erforderlichen Zeichenfolge es (url1).

Dann teilen Sie nach Leerzeichen, um eine Liste mit zwei Elementen zu erhalten, die Sie später mit ? verbinden.

Alternative (von deloz vorgeschlagen):

base_url = "http://intelligencesquaredus.org/debates/past-debates" 
for a in([''.join((base_url, '?', 'start=', str(i))) for i in range(9, 118, 9)]): 
    print(a) 
+1

Auch das funktioniert einwandfrei :) –

+0

Das benutzt Listenverständnis. –

Verwandte Themen