Windows注册表项HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections包含一个名为DefaultConnectionSettings的二进制值,用于存储有关用户代理配置的所有类型的数据.这些数据的确切格式是什么?
到目前为止,我所能找到的只是这个论坛帖子中的内容,这在某些方面并不完整,似乎是错误的.
我想异步查询Foursquare API,它目前不允许旧的$ .get().我的短期解决方案是创建一个只需获取数据的Helper:
def foursquare_info_for(venue_id)
res = Net::HTTP.get_response("api.foursquare.com", "/v1/venue.json?vid=#{venue_id}")
data = JSON.parse(res.body)
info = Hash.new
info["mayor_name"] = "#{data['venue']['stats']['mayor']['user']['firstname']} #{data['venue']['stats']['mayor']['user']['lastname']}"
info["mayor_photo_src"] = "#{data['venue']['stats']['mayor']['user']['photo']}"
info["checkins"] = "#{data['venue']['stats']['checkins']}"
info
end
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我宁愿把它作为一个代理,我可以在页面加载后使用jQuery AJAX请求来加快速度.我很确定这个助手接近我需要做的事情才能让代理工作,但是我不知道我需要将代理JSON放在我身边以便能够用jQuery抓取它.
我是否正在使用net/http创建代理?
我在哪里放置代理,以便我可以使用jQuery GET访问它?
我目前正在研究一个代理服务器,我们在这种情况下必须修改我们推送它的数据(通过使用regexp).
在大多数情况下它工作正常,除了使用gzip作为内容编码的网站(我认为),我遇到了一个名为compress的模块,并尝试通过解压缩/ gunzip流来推送我收到的块但是它不是真的像我预期的那样结果.
我想知道我是否正朝着正确的方向前进,如果有更多的模块可以让我的生活更轻松(关于gzip压缩).
格尔茨,
本杰明
我需要一个始终更新的代理列表.我将用PHP解析它并与cURL一起使用.但我只需要3个国家(例如美国,英国,意大利)代理.
我在哪里可以找到代理列表?
列表可以是文本文件,xml rss feed等.
例如 :
USA.txt
xxx.xxx.xx.xx:8880
aaa.aaa.aaa.aa:8000
bbb.bbb.bb.bbb:8080
Run Code Online (Sandbox Code Playgroud)
ENGLAND.txt
xxx.xxx.xx.xx:8880
aaa.aaa.aaa.aa:8000
bbb.bbb.bb.bbb:8080
Run Code Online (Sandbox Code Playgroud) 我编写了一个非常简单的控制台应用程序,它只是使用以下代码下载文件:
System.Net.WebClient web = new System.Net.WebClient ();
web.DownloadFile ("http://www.google.com", "file.txt");
Run Code Online (Sandbox Code Playgroud)
在我以前的开发机器上,这非常快.一旦我执行了该DownloadFile方法,请求就越过了线路,响应很快就会响起.我使用ProcMon工具检查了这种行为.
然而,在切换到另一台机器之后,我发现它比我的初始开发盒要强大得多,我注意到在调用时大约5-8秒不会发生任何事情DownloadFile.使用浏览器访问相同的URL会显示几乎立即的结果.
在花了几个小时研究这个,进入.NET源代码之后,我终于放弃了System.Net.ServicePointManager.FindServicePoint踩到某种程度上不再对我有意义的地方,以及一些代理解析似乎有原因的地方.
我终于关闭了Internet Explorer 8(我运行的是Windows 7 x64)中的" Internet选项"对话框的" 局域网设置"对话框中的" 自动检测设置",而对话框中没有设置复选框.这神奇地使一切都做得非常非常快.没有更多的延迟.
好吧,我找到了一种方法来规避我观察到的问题,但如果有人可以就我的代码可能出错的地方分享一些想法,我会很高兴.我可以通过某种方式配置WebClient实例以某种方式实现相同的效果吗?
我有一个带有StreamReader的HttpWebRequest,它可以在不使用WebProxy的情况下工作得很好.当我使用WebProxy时,StreamReader会读取奇怪的字符而不是实际的html.这是代码.
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://URL");
req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10";
req.Accept = "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
req.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.3");
req.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
req.Headers.Add("Accept-Language", "en-US,en;q=0.8");
req.Method = "GET";
req.CookieContainer = new CookieContainer();
WebProxy proxy = new WebProxy("proxyIP:proxyPort");
proxy.Credentials = new NetworkCredential("proxyUser", "proxyPass");
req.Proxy = this.proxy;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader reader = new StreamReader(res.GetResponseStream());
string html = reader.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
不使用WebProxy,变量html保存URL中的预期html字符串.但是,使用a WebProxy,html保持这样的值:
"\b\0\0\0\0\0 \0 ]r s Y \0\tP \"] ki - …
我想用Delphi代码为IE设置代理操作连接.我测试这段代码:
Procedure SetProxy(const Server: String);
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings',False);
Reg.WriteString('ProxyServer',Server);
Reg.WriteBool('ProxyEnable',True);
Reg.CloseKey;
Reg.Free;
InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, 0, 0);
end;
Run Code Online (Sandbox Code Playgroud)
但它改变了IE Internet Option中的LAN设置.
有人有解决方案吗?
附加: 如何检索连接名称列表?
我有一个代理列表,需要在我写的PHP脚本中使用它们.
在使用代理之前,如何测试代理是否可行?那可能吗?目前,如果代理不起作用,脚本会在30秒后死亡.有没有更快捷的方法来确定它是否有效?
也许创建套接字连接?发送一些东西,揭示代理是否开放?
谢谢
我正在wget尝试从网上抓一些东西,但我不想跟随页面的一部分.我以为我可以设置一个代理,删除我不想处理的网页部分,然后再将其返回给wget,但我不确定如何实现这一点.
是否有代理可以让我轻松修改python或node.js中的http响应?