public static void SearchForSeries(string Query) { HtmlWeb htmlWeb = new HtmlWeb(); HtmlDocument htmlDocument = htmlWeb.Load("http://www.imdb.com/find?" + "q=" + Query + "&s=tt&ttype=tv"); HtmlNodeCollection resultNodes = htmlDocument.DocumentNode .SelectNodes("//*[contains(concat(' ', normalize-space(@class), ' '), ' result_text ')]"); int nodeNumber = 0; for (int i = 0; i < 10; i++) { ResultSeries currResult = new ResultSeries(); string innerHtml = resultNodes[nodeNumber].InnerHtml; Regex propertyRegex = new Regex("/tt([0-9]+).*>(.*)<.*\\(([0-9]+)\\).*\\((.*)\\)(?:.*>\"(.*)\"<)?"); GroupCollection propertyGroups = propertyRegex.Match(innerHtml).Groups; if (propertyGroups[4].Value == "TV Movie" || propertyGroups[4].Value == "TV Short") { i--; } else { currResult.id = propertyGroups[1].Value; currResult.name = propertyGroups[2].Value; currResult.startYear = propertyGroups[3].Value; currResult.type = propertyGroups[4].Value; currResult.aka = propertyGroups.Count > 5 ? propertyGroups[5].Value : ""; Variables.ResultSeriesList.Add(currResult); } if (nodeNumber == resultNodes.Count - 1) { break; } nodeNumber++; } return; }
public static DataTable CreateTable() { DataTable seriesTable = new DataTable(); seriesTable.Columns.Add("#", typeof(int)); seriesTable.Columns.Add("IMDB id", typeof(string)); seriesTable.Columns.Add("Name", typeof(string)); seriesTable.Columns.Add("AKA", typeof(string)); seriesTable.Columns.Add("Year", typeof(string)); seriesTable.Columns.Add("Type", typeof(string)); for (int i = 0; i < Variables.ResultSeriesList.Count; i++) { ResultSeries currSeries = Variables.ResultSeriesList[i]; seriesTable.Rows.Add(i + 1, currSeries.id, currSeries.name, currSeries.aka, currSeries.startYear, currSeries.type); } return(seriesTable); }