2012-02-09 10 views
6

Tôi đang sử dụng urllib2 để tương tác với máy chủ web. Đối với vấn đề cụ thể mà tôi cần phải giải quyết, tôi cần phải hầm đường truyền thông qua proxy. Tôi đã làm được điều đó với một 'ProxyHandler' của urllib2.Cả hai sử dụng cookie và proxy trong Python với urllib2

Tôi cũng cần chấp nhận và gửi cookie. Tôi đã làm được điều đó với một 'cookielib.LWPCookieJar()' của urllib2.

Vấn đề là trong khi chúng hoạt động riêng lẻ, chúng không hoạt động 'cùng nhau'. Công cụ mở cuối cùng mà tôi thêm vào với 'urllib2.install_opener (opener)' là công cụ sẽ hoạt động.

Có thể có hai "người mở" hoạt động không? Hoặc một cách khác để giải quyết vấn đề này?

Trả lời

10

Kết hợp xử lý proxy và xử lý cookie trong một mở duy nhất:

cj = cookielib.CookieJar() 
opener = build_opener(ProxyHandler({'http': 'ip:port'}), HTTPCookieProcessor(cj)) 
+0

Nó hoạt động, tuyệt vời! – Erik