2012-04-12 55 views
1

OK後,這裏的基本上就是我想要做的事:獲取URL的一部分重定向

的URL http://anidb.net/perl-bin/animedb.pl?show=animelist&adb.search="Cowboy Bebop"&do.search=search重定向到http://anidb.net/perl-bin/animedb.pl?show=anime&aid=23

比方說,我想寫下ID(23,在這個例子)在一個XML文件中。

+1

更多信息 - 你真的想要一個Python解決方案嗎?爲什麼你的腳本在Perl中?蟒蛇在哪裏起作用? – Kasapo 2012-04-12 17:41:00

回答

1

urlopen的結果有方法geturl它提供重定向信息。然後你可以用正則表達式來解析它。

import urllib2 
import re 

url = 'http://anidb.net/perl-bin/animedb.pl?show=animelist&adb.search=%22Cowboy%20Bebop%22&do.search=search' 
headers = {"User-agent": "Mozilla/5.0"} 
request = urllib2.Request(url, None, headers) 
result = urllib2.urlopen(request) 
r = re.search("aid=(\d+)", result.geturl()) 
print r.group(1) 
+0

可能應該使用類似'urlparse'的庫而不是'regex' – jamylak 2012-04-12 17:51:51

+0

可能應該。我從來沒有用過它。隨時提高我的答案。 – Fenikso 2012-04-12 17:57:31

0

這樣做:

var uri = window.location.href 
var params = uri.split("?")[1].split("&"); 

args = {}; 
for(var i=0; i<params.length; i++) { 
    p = params[i].split("="); 
    args[p[0]] = p[1]; 
} 
alert(args['aid']); 

[編輯:鋸蟒蛇標籤]

因此,在蟒蛇,如果你有一個網址,你可以非常類似於把它分解:

uri = "http://anidb.net/perl-bin/animedb.pl?show=anime&aid=23" 
params = uri.split('?')[1].split('&') 

args={} 
for kv in params: 
    p = kv.split('=') 
    args[p[0]] = p[1] 

但是,我再也不知道python在你的問題中起了什麼作用,因爲它看起來被碰到的腳本是perl。

+0

這不應該是'python'嗎? – jamylak 2012-04-12 17:37:59

+2

我沒有downvote,但我相信downvote是因爲這是一個標籤爲Python的問題的Javascript。 OP可能正在尋找服務器端解決方案。 – bernie 2012-04-12 17:38:40

+1

我的不好...那麼URL在哪裏發揮與python的發揮?我只看到perl腳本 – Kasapo 2012-04-12 17:40:30

0

與實際的編碼問題無關。但是您可能需要使用AniDB search data而不是查詢他們的網站。