Python 3.[12] urllib

1 投票
1 回答
1472 浏览
提问于 2025-04-16 23:40

我正在写一个小脚本,从一个网站上抓取一些文件。首先,我会创建一个可能的网址列表,这在Python 3.1中运行得很好,但在Python 3.2中就不行了。我想这可能是编码的问题,但我不太确定怎么优雅地解决这个问题。你能帮我吗?

def get_urls(username, password, userid):
    cj = http.cookiejar.CookieJar()
    opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
    login_data = urllib.parse.urlencode({'login' : username, 'password' : password})
    opener.open(BASE_URL+"/bg/login", login_data)
    url = BASE_URL + "/bg/user/" + userid + "?finished=1"
    resp = opener.open(url)
    result = resp.read()
    txt = result.decode("iso-8859-1")
    liste = (re.findall("/bg/export/[\d]{4,8}",txt))
    return liste

1 个回答

0

问题应该出在这里:

login_data = urllib.parse.urlencode({'login' : username, 'password' : password}) opener.open(BASE_URL+"/bg/login", login_data)

urllib.parse.urlencode 输出的是字符串,而不是可迭代的对象。

撰写回答