我这是从谷歌搜索结果中提取URL (https://www.google.com/search?q=myquery&num=100)
@"(?<=<h3 class=\""r\""><a href=\""\/url\?q=)(.*?)(?=&)";
这是我从谷歌搜索结果中提取网址的代码
const string regexPattern = @"(?<=<h3 class=\""r\""><a href=\""\/url\?q=)(.*?)(?=&)";
public static string[] TopUrls(string data)
{
Regex regex = new Regex(regexPattern);
MatchCollection collection = regex.Matches(data);
return collection.Cast<Match>()
.Select(m => m.Value)
.ToArray();
}
string downloadUrl = "https://www.google.com" + "/search?q=" + keyword.ToString() + "&num=" + numResults + "&as_qdr=all&ei=LrUVVf7UMrPfsAS7lICgCw&sa=N&biw=1440&bih=690";
fetch.Headers.Set(HttpRequestHeader.Host, "www.google.com");
string data = fetch.DownloadString(downloadUrl);
string[] results = TopUrls(data);
从该代码我可以从谷歌搜索结果中提取每个网址。
结果如下: https:// www blogger com / profile / 15582992268736301561 https:// www blogger com / profile / 17377873899922361640
如何为此网址编写正则表达式? http://www.bing.com/search?q=myquery&count=100
谢谢你:)
答案 0 :(得分:1)
尝试使用此类<h2>*?<a\s+[^>]*?href="([^"]*)"
答案 1 :(得分:0)
为什么不使用Bing Search API?如果您真的必须解析HTML,那么您正在寻找算法结果。使用 b_algo 类获取 li 标记,并从中提取网址。
答案 2 :(得分:0)
您的第一步是使用:
<cite>(.*?)</cite>
然后您需要另一个正则表达式来删除<strong>
标记