zoukankan      html  css  js  c++  java
  • ADURL简化程序

    using System;
    using System.Diagnostics;
    using System.Net;
    using System.Text;
    using System.Web;
    using System.Linq;
    using System.IO;
    using System.Collections.Generic;
    namespace AdUrlConvert
    {
    class Program
    {
    public static string Finalurl;
    public static string getProxyIP = System.Configuration.ConfigurationManager.AppSettings["proxyIP"];
    public static int getproxyPORT = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["proxyPORT"]);
    public static string getinputCsvPath = System.Configuration.ConfigurationManager.AppSettings["inputCsvPath"];
    public static string getoutputCsvPath = System.Configuration.ConfigurationManager.AppSettings["outputCsvPath"];
    static void Main(string[] args)
    {
    readUrlCsv();
    }
    public static string GetFinalAdUrl(string finlurl, string url)
    {
    try
    {
    
    
    Finalurl = finlurl;
    string result = string.Empty;
    HttpWebRequest request = WebRequest.Create(finlurl) as HttpWebRequest; //第一步:用工厂机制(factory mechanism)通过Create()方法来创建一个HttpWebRequest对象。
    request.AllowAutoRedirect = false; // 获取或设置一个值,该值指示请求是否应跟随重定向响应。
    WebProxy proxy = new WebProxy(getProxyIP, getproxyPORT);
    request.Proxy = proxy;
    HttpWebResponse response = request.GetResponse() as HttpWebResponse; //第二步:调用 HttpWebRequest.GetResponse()方法返回的是一个HttpWebResponse对象
    
    while (response.Headers["Location"] != null)
    {
    try
    {
    Finalurl = response.Headers["Location"];
    response.Close();
    request = WebRequest.Create(Finalurl) as HttpWebRequest;
    request.AllowAutoRedirect = false;
    request.Referer = Finalurl;
    response = request.GetResponse() as HttpWebResponse;
    }
    catch (Exception x)
    {
    Finalurl = "null";
    LogHelper.WriteLog(typeof(Program), string.Format("今行ってURL:{0} 詳しい内容は {1}", url, x.Message));
    break;
    }
    
    
    }
    LogHelper.WriteLog(typeof(Program), string.Format("今行ってURL:{0} 詳しい内容は {1}", url, "Finalurl:" + Finalurl));
    
    response.Close();
    }
    catch (Exception ex)
    {
    
    LogHelper.WriteLog(typeof(Program), string.Format("今行ってURL:{0} 詳しい内容は {1}", url, ex.Message));
    }
    return Finalurl;
    
    
    #region 源码的获取
    //Stream sr = response.GetResponseStream(); //从Internet资源返回数据流
    //if (sr != null) 
    //{
    // StreamReader reader = new StreamReader(sr, Encoding.UTF8); //读取数据流
    // result = reader.ReadToEnd();
    // reader.Close();
    // sr.Close();
    // request.Abort();
    // response.Close();
    //} 
    //url = response.Headers["Location"];
    //response.Close();
    
    //request = WebRequest.Create(url) as HttpWebRequest;
    //request.AllowAutoRedirect = false;
    //request.Referer = url;
    //response = request.GetResponse() as HttpWebResponse;
    //url = response.Headers["Location"];
    //response.Close();
    
    //request = WebRequest.Create(url) as HttpWebRequest;
    //request.AllowAutoRedirect = false;
    //request.Referer = url;
    //response = request.GetResponse() as HttpWebResponse;
    //url = response.Headers["Location"];
    //response.Close();
    //Console.WriteLine(url);
    #endregion 源码的获取
    
    }
    
    public static void readUrlCsv()
    {
    string path = getinputCsvPath;
    UrlList ul = new UrlList();
    ul.Finalurl = new List<string>();
    ul.Finalurl.Add("最終URL");
    ul.ADurlList = File.ReadAllLines(path, Encoding.UTF8).ToList();
    int index = 1;
    // 循环访问一遍
    
    ul.ADurlList.Skip(1).ToList().ForEach(x =>
    {
    ul.Finalurl.Add(GetFinalAdUrl(ul.ADurlList[index],ul.ADurlList[index]));
    index++;
    });
    // 对出错的重新访问
    index = 1;
    
    
    ul.ADurlList.ForEach(x =>
    {
    if (ul.Finalurl[index] == null)
    {
    ul.Finalurl[index] = GetFinalAdUrl(ul.ADurlList[index], ul.ADurlList[index]);
    index++;
    }
    });
    index = 0;
    // 生成最终的csv
    
    for (int i = 0; i < ul.ADurlList.Count; i++)
    {
    ul.ADurlList[i] += "," + ul.Finalurl[i];
    }
    File.WriteAllLines(getoutputCsvPath, ul.ADurlList);
    }
    }
    }
    

      

  • 相关阅读:
    session和cookie的理解
    CSS3媒体查询能检测到的特性小结
    怎样让搜索引擎收录你的网站|向搜索引擎提交你的网站
    vue-i18n vue-cli项目中实现国际化 多语言切换功能 一
    chrome中hack解决input:-webkit-autofill自定义样式
    知识分享
    iPhone的CSS3媒体查询
    C#中异常:“The type initializer to throw an exception(类型初始值设定项引发异常)”的简单分析与解决方法
    快速原型设计工具-Axure RP的介绍及简单使用(生产初期向客户展示设计产品的原型-也就是展示产品)
    纯CSS实现下拉菜单及下拉容器等(纯CSS实现导航条及导航下拉容器)
  • 原文地址:https://www.cnblogs.com/c-x-a/p/6182663.html
Copyright © 2011-2022 走看看