我做了一个代理刮板,但是遇到了一个问题:
Regex rgx = new Regex(@"[a-zA-Z<>/]");
WebClient wc = new WebClient();
foreach(string s in urls)
try
{
string url = wc.DownloadString(s);
foreach(string reg in regex) // Regex is a list that read regex from text file
{
MatchCollection mc = Regex.Matches(url, reg);
foreach (Match m in mc)
{
Proxies.Add(m.ToString());
}
}
}
catch
{
}
Proxies = Proxies.Distinct().ToList(); // Remove duplicate lines
我使用的正则表达式:
\d{1,4}[.]\d{1,4}[.]\d{1,4}[.]\d{1,4}[:0-9]+
\d{1,8}[.]\d{1,8}[.]\d{1,8}\d{1,8}[.]\d{1,8}<\/td><td>[0-9]+
因为我不知道如何制作可在每个网站上使用的正则表达式,所以我不得不制作一个文本文件,以便用户可以制作自己的正则表达式。
第二个正则表达式的问题在于它将像这样刮擦:
1.1.1.1</td><td>8080
我希望它用“:”替换不需要的字符:“ <> / abcdefghijklmnopqrstuvwxyz”