我需要删除Google快讯网址

时间:2016-08-22 20:51:21

标签: c# url strip google-alerts

前言,我知道有关于此的类似线程,但我使用的是C#,而不是java,或python或Php。有些线程为单个URL提供了解决方案,这不是通用的。谢谢你没有标记我。

所以我使用Google快讯通过电子邮件获取文章链接。我已经编写了一个程序,可以从电子邮件中删除URL以及另一个程序来删除网站。我的问题是google警报电子邮件中的链接如下所示:

https://www.google.com/url?rct=j&sa=t&url=http://www.foxnews.com/health/2016/08/19/virtual-reality-treadmills-help-prevent-falls-in-elderly.html&ct=ga&cd=CAEYACoTOTc2NjE4NjYyNzMzNzc3NDcyODIaODk2NWUwYzRjMzdmOGI4Nzpjb206ZW46VVM&usg=AFQjCNGyK2EyVBLoKnNkdxIBDf8a_B3Ung。是的,丑陋的。

因为这通过谷歌重定向到实际文章,我的抓取程序不适用于这些链接。我已经从这里和其他来源的问题尝试了一百万种不同的RegEx。我设法剥离了所有内容,直到实际文章的http://,但它仍然有尾端拧紧它。这是我到目前为止所拥有的。他们现在看起来像:

http://www.foxnews.com/health/2016/08/19/virtual-reality-treadmills-help-prevent-falls-in-elderly.html&ct=ga&cd=CAEYACoTOTc2NjE4NjYyNzMzNzc3NDcyODIaODk2NWUwYzRjMzdmOGI4Nzpjb206ZW46VVM&usg=AFQjCNGyK2EyVBLoKnNkdxIBDf8a_B3Ung

$('.datepicker').on('change', function (e) {
    $.post('AcctSummary/GetSummaryByDate', {'string':e.date});
});

有些帮助摆脱结局将是非常棒的,无论是新的RegEx还是一些额外的代码。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用HttpUtility.ParseQueryString检索查询字符串的url部分。它位于System.Web命名空间(需要参考)。

var uri = new Uri("https://www.google.com/url?rct=j&sa=t&url=http://www.foxnews.com/health/2016/08/19/virtual-reality-treadmills-help-prevent-falls-in-elderly.html&ct=ga&cd=CAEYACoTOTc2NjE4NjYyNzMzNzc3NDcyODIaODk2NWUwYzRjMzdmOGI4Nzpjb206ZW46VVM&usg=AFQjCNGyK2EyVBLoKnNkdxIBDf8a_B3Ung");
var queries = HttpUtility.ParseQueryString(uri.Query);
var foxNews = queries["url"]; //http://www.foxnews.com/health/2016/08/19/virtual-reality-treadmills-help-prevent-falls-in-elderly.html