private IEnumerator <ZoneEbooks_PostHeader> Load(string url, bool reload, bool loadImage) { if (url != null) { _headerPage = ZoneEbooks_LoadHeader.Load(url, _requestParameters, reload, loadImage); if (_headerPage != null) { return(_headerPage.postHeaders.AsEnumerable <ZoneEbooks_PostHeader>().GetEnumerator()); } } return(null); }
public static ZoneEbooks_HeaderPage LoadHeaderPageFromWeb(pb.Web.v1.RequestFromWeb_v2 request) { XXElement xeSource = new XXElement(request.GetXmlDocument().Root); //string url = request.Url; ZoneEbooks_HeaderPage data = new ZoneEbooks_HeaderPage(); // post list : // <div id="post-1838" class="post-1838 post type-post status-publish format-standard hentry category-journaux tag-le-parisien-journal-de-paris-supp-economie-du-lundi-07-octobre-ebook tag-le-parisien-journal-de-paris-supp-economie-du-lundi-07-octobre-ebook-gratuit tag-le-parisien-journal-de-paris-supp-economie-du-lundi-07-octobre-gratuit tag-le-parisien-journal-de-paris-supp-economie-du-lundi-07-octobre-pdf tag-le-parisien-journal-de-paris-supp-economie-du-lundi-07-octobre-telechargement tag-telecharge-le-parisien-journal-de-paris-supp-economie-du-lundi-07-octobre-ddl tag-telecharge-le-parisien-journal-de-paris-supp-economie-du-lundi-07-octobre-uptobox tag-telechargement-le-parisien-journal-de-paris-supp-economie-du-lundi-07-octobre tag-telecharger-le-parisien-journal-de-paris-supp-economie-du-lundi-07-octobre tag-telecharger-le-parisien-journal-de-paris-supp-economie-du-lundi-07-octobre-ebook tag-telecharger-le-parisien-journal-de-paris-supp-economie-du-lundi-07-octobre-pdf clear-block count-1 odd author-admin first"> // _hxr.ReadSelect("//div[starts-with(@id, 'post-')]:.:EmptyRow"); // next page : // <a href='http://zone-ebooks.com/page/2' class='nextpostslink'>ยป</a> // _hxr.ReadSelect("//a[@class='nextpostslink']:.:EmptyRow", "./@href"); data.urlNextPage = zurl.GetUrl(request.Url, xeSource.XPathValue("//a[@class='nextpostslink']/@href")); Trace.WriteLine("urlNextPage \"{0}\"", data.urlNextPage); IEnumerable <XXElement> xeHeaders = xeSource.XPathElements("//div[starts-with(@id, 'post-')]"); List <ZoneEbooks_PostHeader> headers = new List <ZoneEbooks_PostHeader>(); foreach (XXElement xeHeader in xeHeaders) { ZoneEbooks_PostHeader header = new ZoneEbooks_PostHeader(); header.sourceUrl = request.Url; header.loadFromWebDate = DateTime.Now; //<h2 class="title"> // <a href="http://zone-ebooks.com/journaux/le-parisien-journal-de-paris-supp-economie-du-lundi-07-octobre-pdf.html" // rel="bookmark" title="Lien permanent: Le Parisien + Journal de Paris & supp Economie du lundi 07 octobre"> // Le Parisien + Journal de Paris & supp Economie du lundi 07 octobre</a> //</h2> XXElement xe = xeHeader.XPathElement(".//*[@class='title']//a"); header.urlDetail = xe.XPathValue("@href"); header.title = xe.XPathValue(".//text()"); //<div class="post-date"> // <span class="ext">Il y a 2 heures</span> //</div> string postDate = xeHeader.XPathValue(".//div[@class='post-date']//text()"); //WriteLine("post date \"{0}\"", postDate); //Il y a 57 secondes //Il y a 3 minutes //Il y a 1 heure //Il y a 1 jour //Il y a 2 semaines //Il y a 2 mois if (postDate != null) { header.infos.Add("postDate", new ZString(postDate)); } //<div class="post-info"> // <span class="a">par // <a href="http://zone-ebooks.com/author/admin" title="Articles par admin "> // admin // </a> // </span> // dans // <a href="http://zone-ebooks.com/category/journaux" rel="tag" title="Journaux (158 sujets)">Journaux</a> //</div> xe = xeHeader.XPathElement(".//div[@class='post-info']"); header.author = xe.XPathValue(".//a//text()"); header.category = xe.XPathValue("./a//text()"); //<div class="post-content clear-block"> xe = xeHeader.XPathElement(".//div[starts-with(@class, 'post-content')]"); //<img title="Le Parisien + Journal de Paris & supp Economie du lundi 07 octobre PDF" // alt="Le Parisien + Journal de Paris & supp Economie du lundi 07 octobre PDF" // src="http://i.imgur.com/f7aWDHF.jpg" width="362" height="446" /> //header.images = xe.XPathImages(request.Url, __imagesToSkip); //header.images = xe.XPathImages(request.Url, imageHtml => !__imagesToSkip.ContainsKey(imageHtml.Source)); //header.images = xe.XPathImages(xeImg => new ImageHtml(xeImg, request.Url), imageHtml => !__imagesToSkip.ContainsKey(imageHtml.Source)).ToList(); //header.images = xe.XPathImages(xeImg => new ImageHtml(xeImg, request.Url), imageHtml => !__imagesToSkip.ContainsKey(imageHtml.Source)).ToList(); header.images = xe.DescendantNodes(node => XmlDescendant.ImageFilter(node)).Select(xeImg => new pb.old.ImageHtml((XElement)xeImg, request.Url)).Where(imageHtml => !__imagesToSkip.ContainsKey(imageHtml.Source)).ToList(); if (request.LoadImage) { pb.old.Http_v2.LoadImageFromWeb(header.images); } // image "infos sur le livre" http://i.imgur.com/GTPfRoB.png // image "description" http://i.imgur.com/Ruuh4CP.png //********************************************************************************************************************************************************************************** // pb image "infos sur le livre" // zone-ebooks.com_img_info_livre_02_02.html // zone-ebooks.com_img_info_livre_02_02.xml // <div style="text-align: center;"> // image ok // <img title="Florence Bellot, "Tresses et bracelets bresiliens"" alt="Florence Bellot, Tresses et bracelets bresiliens PDF" src="http://i.imgur.com/RHWAvUQ.jpg" /> // <p> // image "infos sur le livre" // <img title="Florence Bellot, "Tresses et bracelets bresiliens"" alt="Florence Bellot, Tresses et bracelets bresiliens PDF" src="http://i.imgur.com/GTPfRoB.png" /> // </p> // ... // <p> // image "description" // <img title="Florence Bellot, "Tresses et bracelets bresiliens"" alt="Florence Bellot, Tresses et bracelets bresiliens PDF" src="http://i.imgur.com/Ruuh4CP.png" /> // </p> //********************************************************************************************************************************************************************************** headers.Add(header); } data.postHeaders = headers.ToArray(); return(data); }