tornado的aschttpclient,底层依赖pycurl,使用py2exe的时候,pycurl.pyd会致使程序闪退,解决方式,使用打过补丁的pycurl.pyd。html
代理客户端的实现原理是什么?抓个包,其实很简单:socket链接代理ip,header头部中给定真实目标url便可,包体没有变化。web
这是直接telnet代理服务器,url填百度的包,代理服务器会去取Host,再重新构造http请求,将请求返回给当前没close的套接字。bash
GET / HTTP/1.1 Host: www.baidu.com Connection: close Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 Referer: http://www.cnblogs.com/ Accept-Encoding: gzip, deflate, sdch Accept-Language: zh-CN,zh;q=0.8