【问题标题】:How to change Proxy of Website If we have list of proxies By code in C#如果我们有代理列表,如何通过 C# 中的代码更改网站代理
【发布时间】:2017-01-20 15:58:43
【问题描述】:

我花了三天时间通过 C# 代码和网站名称“http://tweetermonitor.apphb.com/”更改网站代理,但没有找到从我拥有的列表中更改代理的非常好的方法。实际上,我的网站正在从网站 url 中提取数据,并且一些网站正在阻止我的 IP 地址,并且系统无法提取数据。我有一些代理,我想从代码中更改它,这意味着我将把代理放在数据库中,当我的网站被阻止时,我将放置一个代理并在 Code 中添加 Webproxy 系统。我找到了一个代码,但我不明白它的含义。

var getHtmlWeb = new HtmlWeb() { AutoDetectEncoding = false, OverrideEncoding = Encoding.GetEncoding("iso-8859-2") };

                WebProxy myproxy = new WebProxy("116.197.134.130:8080", true);

                NetworkCredential cred = (NetworkCredential)CredentialCache.DefaultCredentials;

                var document = getHtmlWeb.Load("http://tweetermonitor.apphb.com/", "POST", myproxy, cred);

代码运行成功,但这里的 Var Document 是什么意思?在做什么?enter image description here这里是变量文件有什么的描述。请帮助我,我非常需要它。帮助将不胜感激。谢谢,希望我能得到帮助..

【问题讨论】:

    标签: c# .net proxy proxies


    【解决方案1】:

    我会分解的,

    // getHtmlWeb is the webclient
    var getHtmlWeb = new HtmlWeb() { AutoDetectEncoding = false, OverrideEncoding = Encoding.GetEncoding("iso-8859-2") };
    
                    // This is the WebProxy that you connect through
                    WebProxy myproxy = new WebProxy("116.197.134.130:8080", true);
                    // from what i believe this pulls the credentials to login to the proxy from the credentialcache
                    NetworkCredential cred = (NetworkCredential)CredentialCache.DefaultCredentials;
    
                    // document is the website that has been loaded..
                    // "POST", myproxy, cred is used to login to the proxy which then allows you to load the webpage
                    var document = getHtmlWeb.Load("http://tweetermonitor.apphb.com/", "POST", myproxy, cred);
    

    对于您问题的最后部分,我不完全理解您要达到的目标。但是你确实要求解释代码,所以这就是我提供的。

    【讨论】:

    • 感谢 Offnix 的宝贵意见。但我实际上想要这个。我正在运行从不同网站提取数据的网站应用程序,一些网站检查我的 IP 地址并阻止我的网站 tweetermonitor.apphb.com 。我只想当提取网站阻止我的网站时,我将放置新的代理 IP:116.197.134.130 和端口:8080。然后我的网站应该在这个给 IP (代理) 116.197.134.130 而不是我的原始 IP 上工作。我为此购买了 20 多个代理。这是我想通过编码实现的。请帮助
    • Offnix 请帮忙。我有不同的 Json 网址,例如 cncpts.com/products.json,我在 ProductsJsonModel 类中获取信息。我将 Url 字符串放在 WebClient 中并反序列化 URL 。我想知道 Var 文档中的内容是什么?从代理获取后。因为我需要 Url 将 JSON 数据反序列化为 class 。这里 fm=cncpts.com/products.json var jsonString = webClient.DownloadString(fm); ProductsJsonModel 数据 JsonConvert.DeserializeObject(jsonString)‌​;
    • 找到答案 :) 我只想通过流式阅读器结束阅读所有页面。感谢您的 cmets
    【解决方案2】:

    Var Documentation

    根据上面的文档,var 将被编译为 HtmlDocument 对象,因为这是 getHtmlWeb.Load() 返回的内容。它基本上会导致:

    HtmlDocument document = getHtmlWeb.Load("http://.com/", "POST", myproxy, cred);

    根据您的需要,您可以点进入对象属性以查看您刚刚检索到的页面的信息。例如,此属性中提供了网页 html 代码:

    document.DocumentNode.OuterHtml

    【讨论】:

    • 嗨尼克,正如我上面解释的那样,我正在运行网站应用程序,该应用程序正在从不同的网站提取数据,一些网站检查我的 IP 地址并阻止我的网站tweetermonitor.apphb.com。我只想当提取网站阻止我的网站时,我将放置新的代理 IP:116.197.134.130 和端口:8080。我为此购买了 20 多个代理。这就是我想通过编码实现的。
    • 嗨,尼克,请对此发表评论。我有不同的 Json 网址,例如 cncpts.com/products.json,我正在 ProductsJsonModel 类中获取信息。我将 Url 字符串放在 WebClient 中并反序列化 URL 。我想知道 Var 文档中的内容是什么?从代理获取后。因为我需要 Url 将 JSON 数据反序列化为 class 。这里 fm=cncpts.com/products.json var jsonString = webClient.DownloadString(fm); ProductsJsonModel 数据 JsonConvert.DeserializeObject(jsonString);
    • 找到答案 :) 我只想通过流式阅读器结束阅读所有页面。感谢您的 cmets –
    • @ArslanAhmad 很高兴我能帮助你找到正确的方向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 2011-03-11
    • 2011-01-11
    相关资源
    最近更新 更多