python,urllib2奇怪的错误?

2024-06-26 00:16:26 发布

您现在位置:Python中文网/ 问答频道 /正文

朋友。你知道吗

我想重写我的一个小工具。基本上,它从用户那里获取一个输入,如果该输入不包含“基本url”,函数将把该输入构造成一个有效的url,供程序的其他部分使用。你知道吗

如果我是这样写的,程序只接受有效的url作为输入,它将工作;但是如果我传递一个字符串并构造它,urllib2.urlopen()将失败,我不知道为什么,因为返回的值与str值完全相同。。。你知道吗

import urllib2
import re

class XunLeiKuaiChuan:

    kuaichuanBaseAddress = 'http://kuaichuan.xunlei.com/d/'
    regexQuery = 'file_name=\"(.*?)\"\sfile_url=\"(.*?)\sfile_size=\"(.*?)\"'
    agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2)'

    def buildLink(self, aLink):

        if aLink == '':
            return

        if 'xunlei.com' not in aLink:
            aLink = self.kuaichuanBaseAddress + aLink

        return aLink

    def decodeLink(self, url):
        url = self.buildLink(url) #it will return correct url with the value provided.
        print 'in decodeLink ' + url  
        urlReq = urllib2.Request(url)
        urlReq.add_header('User-agent', self.agent)
        pageContent = urllib2.urlopen(urlReq).read()
        realLinks = re.findall(self.regexQuery, pageContent)
        return realLinks


test = XunLeiKuaiChuan()
link='y7L1AwKuOwDeCClS528'
link2 = 'http://kuai.xunlei.com/d/y7L1AwKuOwDeCClS528'
s = test.decodeLink(link2)
print s

当我用link2调用它时,它将按预期运行。当使用“链接”时会失败有人告诉我我错过了什么?我的“旧版本”只接受完整的网址,但这个未知的行为正在杀死我这里……谢谢。你知道吗

顺便说一句,如果与完整的网址,它返回一个空列表,只要打开该网址,并在网页上输入catcha。他们这样做是为了防止某种“攻击”。。。。你知道吗


Tags: importself程序comurlreturnurllib2agent