RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在c#語言代碼中使用HTTP代理IP

華益云HTTP爬蟲IP ? 來源:華益云HTTP爬蟲IP ? 作者:華益云HTTP爬蟲IP ? 2022-08-05 16:33 ? 次閱讀

如何在c#語言代碼中使用HTTP代理IP。

以下代碼主要圍繞第一次接觸HTTP代理IP的c#新手來寫(步驟注釋清晰)。

直接把下面示例代碼中的HTTP代理API,替換成你后臺生成的代理API鏈接,就可以跑起來了。

以下是一個示例代碼,只是一個基礎(chǔ)的演示,具體的代碼還是要根據(jù)你業(yè)務(wù)的實際情況去寫的。

示例代碼中的HTTP代理IP,我使用的是華益云的HTTP代理API,注冊就白嫖1萬個高匿爬蟲IP,有效期是一年,對于調(diào)試代碼來說這個時間是非常的友好。

華益云-企業(yè)級HTTP爬蟲代理IP供應(yīng)商-點我免費領(lǐng)取示例代碼demo中同款10000個高匿IP

打開代理API,獲取里面的IP,使用IP訪問目標網(wǎng)站,其實代碼中就是執(zhí)行這個過程而已,然后加了幾個錯誤判斷有助于代碼的穩(wěn)定運行。(步驟注釋清晰)

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;

namespace proxyRequests
{
    class ProxyInfo
    {
        private string host;
        private int port;
        public ProxyInfo(string host, int port)
        {
            this.host = host;
            this.port = port;
        }
        public string getHost()
        {
            return host;
        }
        public int getPort()
        {
            return port;
        }


    }
    class Program
    {
        static void Main(string[] args)
        {
            // 發(fā)送給服務(wù)器的標識
            string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/532.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36";
            // 代理api(這里我推薦使用www.9vps.com華益云的HTTP代理API,注冊就白嫖1萬IP)
            string proxyUrl = "http://http.9vps.com/getip.asp?username=166xxxx6597&pwd=xxxxbaa59ce237dff65134984b9cxxxx&geshi=1&fenge=1&fengefu=&Contenttype=1&getnum=20&setcity=&operate=all&";
            List outPutProxy = getProxy(proxyUrl, userAgent);
            if (outPutProxy.Count == 0) {
                return;
            }
            // 目標請求網(wǎng)站
            string url = "https://www.qq.com/";
            outPutProxy.Add(new ProxyInfo("1", 0));
            for (int i = 0; i < 3; i++)
            {
                // 最多嘗試三次
                try
                {
                    ProxyInfo px = outPutProxy[0];
                    outPutProxy.Remove(px);
                    WebProxy proxy = new WebProxy(px.getHost(), px.getPort());
                    string outHtml = requestGet(url, userAgent, proxy);
                    Console.WriteLine(outHtml);
                    break;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.StackTrace);
                    if (outPutProxy.Count == 0)
                    {
                        // 如果發(fā)現(xiàn)沒有代理了,就去獲取下。
                        outPutProxy = getProxy(proxyUrl, userAgent);
                    }
                }
            }
            //Console.WriteLine(requestGet(@"https://www.baidu.com/", userAgent));
            //Console.ReadKey();
        }
        static List getProxy(string proxyUrl, string userAgent) {

            //String proxyUrl = "http://http1.9vps.com/getip.asp?username=用戶名&pwd=API密碼串&geshi=1&fenge=1&fengefu=&Contenttype=1&getnum=2";
            string proxyIps;
            List outPutProxy = new List();
            try
            {
                proxyIps = requestGet(proxyUrl, userAgent, null);
                Console.WriteLine(proxyIps);
                // {"code":3002,"data":[],"msg":"error!用戶名或密碼錯誤","success":false}
                if (proxyIps.Contains("{"))
                {
                    throw new Exception("[錯誤]" + proxyIps);
                }
                String[] splitedString = proxyIps.Split('\n');
                for (int i = 0; i < splitedString.Length; i++)
                {
                    /*
                     * 180.104.192.217:22036
                     * 150.104.192.217:21036

                    */
                    String[] ret = splitedString[i].Split(':');// 180.104.192.217:22036
                    String host = ret[0]; // 180.104.192.217
                    int port = int.Parse(ret[1]); // 22036 
                    outPutProxy.Add(new ProxyInfo(host, port));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.StackTrace);
            }
            Console.WriteLine("總共獲取了" + outPutProxy.Count + "個代理");

            return outPutProxy;
        }
        static string requestGet(string url, string userAgent, WebProxy proxy)
        {
           
            WebClient client = new WebClient();
            if (proxy != null)
            {
                // 設(shè)置代理部分
                client.Proxy = proxy;
            }
            // 設(shè)置編碼解析方式為 UTF-8,防止中文亂碼
            client.Encoding = Encoding.UTF8;
            client.Headers.Add("user-agent", userAgent);
            return client.DownloadString(url);
        }
    }
}

由于素材太多,遇到文件缺失跑不起來的情況,可到網(wǎng)站下載完整版華益云幫助文檔-使用HTTP代理示例代碼

或者直接百度搜索:華益云HTTP代理

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1495

    瀏覽量

    61925
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    504

    瀏覽量

    31164
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4774

    瀏覽量

    68503
收藏 人收藏

    評論

    相關(guān)推薦

    fiddler4_一款由C#語言開發(fā)的免費http調(diào)試代理軟件

    Fiddler是一款由C#語言開發(fā)的免費http調(diào)試代理軟件,有.net 2 和 .net 4 兩種版本。Fiddler能夠記錄所有的你電腦和互聯(lián)網(wǎng)之間的
    發(fā)表于 12-01 17:19 ?21次下載

    何在Vitis HLS中使C語言代碼創(chuàng)建AXI4-Lite接口

    您是否想創(chuàng)建自己帶有 AXI4-Lite 接口的 IP 卻感覺無從著手?本文將為您講解有關(guān)如何在 Vitis HLS 中使C 語言
    的頭像 發(fā)表于 07-08 09:40 ?1806次閱讀

    何在java代碼中使HTTP代理IP

    何在java代碼中使HTTP代理IP。
    的頭像 發(fā)表于 08-04 15:38 ?2215次閱讀

    python代碼中使HTTP代理IP,demo注釋清晰

    如何再python代碼中使HTTP代理IP。 以下代碼主要圍繞第一次接觸
    的頭像 發(fā)表于 08-04 15:40 ?1041次閱讀

    何在python代碼中使HTTP代理IP

    何在python代碼中使HTTP代理IP。
    的頭像 發(fā)表于 08-04 15:46 ?1273次閱讀

    何在PHP代碼中使HTTP代理IP

    何在PHP代碼中使HTTP代理IP。
    的頭像 發(fā)表于 08-04 16:08 ?2434次閱讀

    go語言代碼中使HTTP代理IP的方法

    何在go語言代碼中使HTTP代理IP。
    的頭像 發(fā)表于 08-04 16:13 ?3169次閱讀

    何在易e語言代碼中使HTTP代理IP

    何在易e語言代碼中使HTTP代理IP,示例
    的頭像 發(fā)表于 08-05 16:29 ?6892次閱讀

    何在c語言代碼中使HTTP代理IP

    何在c語言代碼中使HTTP代理
    的頭像 發(fā)表于 08-05 16:31 ?2339次閱讀

    go語言中怎么使用HTTP代理

    go語言中怎么使用HTTP代理。
    的頭像 發(fā)表于 09-01 14:41 ?2409次閱讀

    e易語言中怎么使用HTTP代理

    e易語言中怎么使用HTTP代理
    的頭像 發(fā)表于 09-01 14:42 ?3800次閱讀

    c語言中怎么使用HTTP代理

    如何再c語言代碼中使HTTP代理IP。
    的頭像 發(fā)表于 09-01 14:44 ?1394次閱讀

    c#語言中怎么使用HTTP代理

    c#語言中怎么使用HTTP代理
    的頭像 發(fā)表于 09-01 14:46 ?2141次閱讀

    python代碼中如何使用HTTP代理

    華益云HTTP代理API有效期是一年,也就是說一年內(nèi)這1萬IP用完就沒了,如果你一年都用不完那到時候剩余IP才會被清零,對于調(diào)試代碼來說時間
    的頭像 發(fā)表于 09-01 14:50 ?891次閱讀

    何在python代碼中使HTTP代理IP

    如何再python代碼中使HTTP代理IP。
    的頭像 發(fā)表于 09-13 09:25 ?992次閱讀
    RM新时代网站-首页