2016-04-29 43 views
0

我想解析一些URL並訪問該站點,並進一步報廢一些數據。解析URL的抓取任務

基本上我當前的代碼是:

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 

其中產生的結果

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

但我希望鏈接是

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

任何幫助,將不勝感激。 在此先感謝

+0

你到底要什麼?你有一個while循環,這就是你有許多鏈接的結果的原因。 –

+0

許多鏈接的結果是好的,這是有意的行爲。我只需要格式是正確的,請再次檢查。 –

+0

好的,你想'''而不是'/'? –

回答

0

使用

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

在上面的代碼中,你正在服用的URL作爲一個字符串,並添加所需的字符串,它(url1)。

然後,您按空格拆分以獲得包含兩個元素的列表,您將在後面加入?

替代(由deloz建議):

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

即使這個作品完美:) –

+0

這是使用列表理解。 –