예제 #1
0
        /// <summary>
        /// Searches Indeed.
        /// </summary>
        /// <param name="parameters">The search query parameters.</param>
        /// <param name="apiPublisherKey">Your Indeed API key.</param>
        /// <returns>The Indeed job search results.</returns>
        public static List<IndeedSearchResult> GetSearchResults(IndeedQueryParameters parameters, string apiPublisherKey)
        {
            Contract.Requires(null != apiPublisherKey);
            Contract.Requires("" != apiPublisherKey.Trim());

            string requestUrl = "http://api.indeed.com/ads/apisearch" +
                                            String.Format("?publisher={0}", apiPublisherKey) +
                                            String.Format("&q={0}", parameters.JobQuery) +
                                            String.Format("&l={0}", parameters.Location) +
                                            String.Format("&sort={0}", parameters.Sort) +
                                            String.Format("&radius={0}", parameters.SearchRadius) +
                                            String.Format("&st={0}", parameters.St) +
                                            String.Format("&jt={0}", parameters.Jt) +
                                            String.Format("&start={0}", parameters.Start) +
                                            String.Format("&limit={0}", parameters.Limit) +
                                            String.Format("&fromage={0}", parameters.FromAge) +
                                            String.Format("&filter={0}", parameters.Filter) +
                                            String.Format("&latlong={0}", parameters.LatitudeLongitude) +
                                            String.Format("&co={0}", parameters.Country) +
                                            String.Format("&chnl={0}", parameters.Channel) +
                                            String.Format("&userip={0}", parameters.UserIP) +
                                            String.Format("&useragent={0}", parameters.UserAgent) +
                                            "&v=2";

            XmlDocument doc = new XmlDocument();
            doc.Load(requestUrl);
            XmlElement root = doc.DocumentElement;
            XmlNodeList nodes = root.SelectNodes("//results//result");

            var results = new List<IndeedSearchResult>();
            foreach (XmlNode node in nodes)
            {
                IndeedSearchResult result = new IndeedSearchResult();
                result.JobTitle = node["jobtitle"].InnerText;
                result.Company = node["company"].InnerText;
                result.City = node["city"].InnerText;
                result.State = node["state"].InnerText;
                result.Country = node["country"].InnerText;
                result.FormattedLocationFull = node["formattedLocation"].InnerText;
                result.Source = node["source"].InnerText;
                result.Date = node["date"].InnerText;
                result.Snippet = node["snippet"].InnerText;
                result.URL = node["url"].InnerText;
                result.OnMouseDown = node["onmousedown"].InnerText;
                result.Latitude = node["latitude"].InnerText;
                result.JobKey = node["jobkey"].InnerText;
                result.Sponsored = node["sponsored"].InnerText;
                result.Expired = node["expired"].InnerText;
                result.FormattedLocationFull = node["formattedLocationFull"].InnerText;
                result.FormattedRelativeTime = node["formattedRelativeTime"].InnerText;

                results.Add(result);
            }

            return results;
        }
예제 #2
0
 /// <summary>
 /// Returns the Indeed job search results based on the specified query parameters.
 /// This overload uses the project's properties file to supply Indeed with the Publisher Number/API key.
 /// </summary>
 /// <param name="parameters">Indeed search parameters.</param>
 /// <returns>The Indeed job search results.</returns>
 public List<IndeedSearchResult> GetSearchResults(IndeedQueryParameters parameters)
 {
     return GetSearchResults(parameters, Properties.Resources.PublisherNumber);
 }