キリル文字を含む URL をロードする必要があります。私のスクリプトはこれで動作するはずです:
これをブラウザで使用すると、通常のシンボルに置き換えられますが、urllib コードは 404 エラーで失敗します。この URL を正しくデコードするには?
アドレス = 'そのアドレス' のように、その URL をコードで直接使用している場合、完璧に機能します。しかし、この URL を取得するために解析ページを使用しました。キリル文字を含む URL のリストがあります。エンコーディングが正しくない可能性がありますか?より多くのコードは次のとおりです。
requestData = urllib2.Request( %SOME_ADDRESS%, None, {"User-Agent": user_agent})
requestHandler = pageHandler.open(requestData)
pageData = requestHandler.read().decode('utf-8')
soupHandler = BeautifulSoup(pageData)
topicLinks = []
for postBlock in soupHandler.findAll('a', href=re.compile('%SOME_REGEXP%')):
topicLinks.append(postBlock['href'])
postAddress = choice(topicLinks)
postRequestData = urllib2.Request(postAddress, None, {"User-Agent": user_agent})
postHandler = pageHandler.open(postRequestData)
postData = postHandler.read()
File "/usr/lib/python2.6/urllib2.py", line 518, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 404: Not Found