0

http://www.site.com/list?a=data&b=dataのようなページからデータを取得したい... site.com のページからこれらすべての URL を取得します。リンクを開こうとすると、エラーが発生します: TypeError: expected BaseHandler instance, got .

私の推測では、URL を「エンコード」する必要がありますが、どうすればよいでしょうか?

助けてくれてありがとう!


編集: わかりました、コードは次のとおりです。したがって、すべての接続はプロキシ サーバーを通過し、上記のように以前に見つかった URL を開こうとします。

コード:

tileurl = 'http://www.site.com/list?a=data&b=data'
proxy = SocksiPyHandler(socks.PROXY_TYPE_SOCKS4, '192.168.0.190', 12500)
opener = urllib2.build_opener(proxy)
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
infile = opener.open(tileurl)
tile_bin = infile.read()

Traceback (most recent call last): 
File "C:\Users\Jean-michel\Dropbox\Projects\Python Code\Maps Saver\map.py", line 89, in <module> opener = urllib2.build_opener(tileurl) 
File "C:\Python27\lib\urllib2.py", line 490, in build_opener opener.add_handler(h) 
File "C:\Python27\lib\urllib2.py", line 326, in add_handler type(handler)) 
TypeError: expected BaseHandler instance, got type 'str' 
4

1 に答える 1

0
tileurl = tile.replace(t1, "") ## Removing the parameters from the url
p = urlparse.parse_qs(t1) ## decoding the parameter
tileparam = urllib.urlencode(p) ## encoding the parameter...

問題が解決しました!!:)

于 2013-07-02T04:28:39.417 に答える