コード例 #1
0
ファイル: ZoneEbooks_Header.cs プロジェクト: 24/source_04
 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);
 }
コード例 #2
0
ファイル: ZoneEbooks_Header.cs プロジェクト: 24/source_04
        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 &amp; supp Economie du lundi 07 octobre">
                //        Le Parisien + Journal de Paris &amp; 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 &amp; 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, &quot;Tresses et bracelets bresiliens&quot;" 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, &quot;Tresses et bracelets bresiliens&quot;" alt="Florence Bellot, Tresses et bracelets bresiliens PDF" src="http://i.imgur.com/GTPfRoB.png" />
                //     </p>
                //   ...
                //     <p>
                // image "description"
                //       <img title="Florence Bellot, &quot;Tresses et bracelets bresiliens&quot;" 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);
        }