重定向后获取URL的一部分

时间:2012-04-12 17:34:11

标签: python

好的,这基本上就是我要做的事情:

网址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

假设我想在XML文件中记下ID(在该示例中为23)。

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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']);

[编辑:看到python标签]

所以,在python中,如果你有一个URL,你可以将它拆分得非常相似:

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。

答案 2 :(得分:0)

与实际编码问题无关。但您可能希望使用AniDB search data而不是查询其网站。