Webクローラーの作成を開始しようとしました。私が理解できないこの混乱を得るまで、順調に進んでいました。私は次のコードを書きました:
私はhttp://www.google.com
文字列として渡していますURL
public void crawlURL(string URL, string depth)
{
if (!checkPageHasBeenCrawled(URL))
{
PageContent = getURLContent(URL);
MatchCollection matches = Regex.Matches(PageContent, "href=\"", RegexOptions.IgnoreCase);
int count = matches.Count;
}
}
private string getURLContent(string URL)
{
string content;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL);
request.UserAgent = "Fetching contents Data";
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream);
content = reader.ReadToEnd();
reader.Close();
stream.Close();
return content;
}
問題: ページ (http://www.google.com またはその他の Web サイト) のすべてのリンクを取得しようとしていますが、正規表現の一致からのリンクの数が少なくなります。ソースコードを手動で「href =」という単語をチェックしたところ、リンク数は 19 になりましたが、41 回出現しました。コードから単語の数が減る理由がわかりません。