0
前言,我知道有類似的線程關於這個,但我使用C#,而不是Java,或Python或PHP。一些線程爲單個URL提供了一個解決方案,這不是通用的。謝謝你不要打我。我需要去掉谷歌快訊網址
因此,我使用Google快訊通過電子郵件獲取文章鏈接。我已經編寫了一個程序,可以刪除電子郵件中的URL以及另一個程序來刪除網站。我的問題是,谷歌提醒電子郵件中的鏈接如下所示:
因爲這通過谷歌重定向到實際文章,我的scraping程序不適用於這些鏈接。我從這裏和其他來源的問題中嘗試了一百萬個不同的RegEx。我設法剝去了一切,直到實際文章的http://,但它仍然有尾部螺絲擰緊。這是我到目前爲止。他們現在的樣子:
private List<string> GetLinks(string message)
{
List<string> list = new List<string>();
Regex urlRx = new Regex(@"((http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)", RegexOptions.IgnoreCase);
MatchCollection matches = urlRx.Matches(message);
foreach (Match match in matches)
{
if(!match.ToString().Contains("news.google.com/news") && !match.ToString().Contains("google.com/alerts"))
{
string find = "=http";
int ind = match.ToString().IndexOf(find);
list.Add(match.ToString().Substring(ind+1));
}
}
return list;
}
一些幫助擺脫的結局將是真棒,是一個新的正則表達式或一些額外的代碼。提前致謝。
哇,這非常簡單。非常感謝! –