private async Task <FoodMaterialItem> GetFoodMaterial(string foodMaterialName, string foodMaterialHref) { string englishName = CrawlerHelper.GetUrlLast(foodMaterialHref); var foodMaterial = new FoodMaterialItem() { Description = foodMaterialName, EnglishName = englishName, SourceUrl = foodMaterialHref, Photo = FoodMaterial.GetImageUrlPath(englishName), }; IHtmlDocument foodMaterialDoc = await CrawlerHelper.GetDocumentAddHttpPrefixAsync(foodMaterialHref + "/useful"); var sourceImgUrl = foodMaterialDoc.QuerySelector("#category_pic")?.GetAttribute("data-src"); if (sourceImgUrl == null) { Logger.Error($"{foodMaterialName} 找不到 category_pic"); } //string localImgPath = "FoodMaterial\\" + englishName + ".jpg"; if (ChiMaConfig.NeedDownloadFoodMaterialImage && sourceImgUrl != null) { string localImgPath = FoodMaterial.GetImageLocalPath(englishName); CrawlerHelper.DownloadImgAndSaveAsync(sourceImgUrl, localImgPath); } var nutritionsUL = foodMaterialDoc.QuerySelector(".category_use_table.mt10.clear")?.FirstElementChild; foodMaterial.Nutritions = new List <string>(); if (nutritionsUL != null) { foreach (var li in nutritionsUL.GetElementsByTagName("li")) { var name = li.TextContent; //var value = li.FirstElementChild.TextContent; foodMaterial.Nutritions.Add(name); } } return(foodMaterial); }
//根据食材ID获取食材 public FoodMaterial selectFoodMaterialByID(int ID) { string sql = "select * from " + TABLE_NAME + " where id = " + ID; SqliteDataReader sdr = sh.ExecuteQuery(sql); if (sdr.Read() == false) { Debug.Log("false"); return(null); } else { Debug.Log("true"); FoodMaterial fm = new FoodMaterial(); fm.id = ID; fm.name = sdr["name"].ToString(); fm.beforeImgPath = sdr["before_img"].ToString(); fm.afterImgPath = sdr["after_img"].ToString(); fm.category = sdr["category"].ToString(); return(fm); } }