How to filter the result of (page.$$eval)How do I debug Node.js applications?How do I get started with Node.jsHow do I pass command line arguments to a Node.js program?How to decide when to use Node.js?How to exit in Node.jsWhat is the purpose of Node.js module.exports and how do you use it?How can I update NodeJS and NPM to the next versions?How the single threaded non blocking IO model works in Node.jsHow do I update each dependency in package.json to the latest version?Setting Environment Variables for Node to retrieve

"Whatever a Russian does, they end up making the Kalashnikov gun"? Are there any similar proverbs in English?

How can Republicans who favour free markets, consistently express anger when they don't like the outcome of that choice?

Can SQL Server create collisions in system generated constraint names?

How does Captain America channel this power?

Checks user level and limit the data before saving it to mongoDB

Re-entry to Germany after vacation using blue card

Function pointer with named arguments?

What are the steps to solving this definite integral?

How to write a column outside the braces in a matrix?

Rivers without rain

Don’t seats that recline flat defeat the purpose of having seatbelts?

Overlay of two functions leaves gaps

Is the claim "Employers won't employ people with no 'social media presence'" realistic?

How to fry ground beef so it is well-browned

How to limit Drive Letters Windows assigns to new removable USB drives

What is the philosophical significance of speech acts/implicature?

Dynamic SOQL query relationship with field visibility for Users

How would 10 generations of living underground change the human body?

What happens in the secondary winding if there's no spark plug connected?

Is there any official lore on the Far Realm?

Can an Area of Effect spell cast outside a Prismatic Wall extend inside it?

How to stop co-workers from teasing me because I know Russian?

Did the BCPL programming language support floats?

Can't get 5V 3A DC constant



How to filter the result of (page.$$eval)


How do I debug Node.js applications?How do I get started with Node.jsHow do I pass command line arguments to a Node.js program?How to decide when to use Node.js?How to exit in Node.jsWhat is the purpose of Node.js module.exports and how do you use it?How can I update NodeJS and NPM to the next versions?How the single threaded non blocking IO model works in Node.jsHow do I update each dependency in package.json to the latest version?Setting Environment Variables for Node to retrieve






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















I'm using the following code to select all hrefs from a web page:



const hrefs = await page.$$eval('a', as => as.map(a => a.href));


I need to know how to filter those hrefs with the ones that only contains /product/ & contains /c/ for example?










share|improve this question




























    0















    I'm using the following code to select all hrefs from a web page:



    const hrefs = await page.$$eval('a', as => as.map(a => a.href));


    I need to know how to filter those hrefs with the ones that only contains /product/ & contains /c/ for example?










    share|improve this question
























      0












      0








      0








      I'm using the following code to select all hrefs from a web page:



      const hrefs = await page.$$eval('a', as => as.map(a => a.href));


      I need to know how to filter those hrefs with the ones that only contains /product/ & contains /c/ for example?










      share|improve this question














      I'm using the following code to select all hrefs from a web page:



      const hrefs = await page.$$eval('a', as => as.map(a => a.href));


      I need to know how to filter those hrefs with the ones that only contains /product/ & contains /c/ for example?







      node.js puppeteer






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 9 at 8:52









      Hatem HusamHatem Husam

      379




      379






















          2 Answers
          2






          active

          oldest

          votes


















          1














          You can add Array.prototype.filter() with String.prototype.includes() predicates:



          const hrefs = await page.$$eval(
          'a',
          as => as.map(a => a.href)
          .filter(href => href.includes('/product/') && href.includes('/c/'))
          );





          share|improve this answer






























            0














            You can achieve this by using .filter instead of .map method.



            Here is what you can try:



            const hrefs = await page.$$eval('a', as => as.filter((d)=>
            return (d.contains('/c/') && d.contains('/product/'))
            ));





            share|improve this answer























              Your Answer






              StackExchange.ifUsing("editor", function ()
              StackExchange.using("externalEditor", function ()
              StackExchange.using("snippets", function ()
              StackExchange.snippets.init();
              );
              );
              , "code-snippets");

              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "1"
              ;
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function()
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled)
              StackExchange.using("snippets", function()
              createEditor();
              );

              else
              createEditor();

              );

              function createEditor()
              StackExchange.prepareEditor(
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              bindNavPrevention: true,
              postfix: "",
              imageUploader:
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              ,
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              );



              );













              draft saved

              draft discarded


















              StackExchange.ready(
              function ()
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55075601%2fhow-to-filter-the-result-of-page-eval%23new-answer', 'question_page');

              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              1














              You can add Array.prototype.filter() with String.prototype.includes() predicates:



              const hrefs = await page.$$eval(
              'a',
              as => as.map(a => a.href)
              .filter(href => href.includes('/product/') && href.includes('/c/'))
              );





              share|improve this answer



























                1














                You can add Array.prototype.filter() with String.prototype.includes() predicates:



                const hrefs = await page.$$eval(
                'a',
                as => as.map(a => a.href)
                .filter(href => href.includes('/product/') && href.includes('/c/'))
                );





                share|improve this answer

























                  1












                  1








                  1







                  You can add Array.prototype.filter() with String.prototype.includes() predicates:



                  const hrefs = await page.$$eval(
                  'a',
                  as => as.map(a => a.href)
                  .filter(href => href.includes('/product/') && href.includes('/c/'))
                  );





                  share|improve this answer













                  You can add Array.prototype.filter() with String.prototype.includes() predicates:



                  const hrefs = await page.$$eval(
                  'a',
                  as => as.map(a => a.href)
                  .filter(href => href.includes('/product/') && href.includes('/c/'))
                  );






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Mar 9 at 10:23









                  vsemozhetbytvsemozhetbyt

                  2,351711




                  2,351711























                      0














                      You can achieve this by using .filter instead of .map method.



                      Here is what you can try:



                      const hrefs = await page.$$eval('a', as => as.filter((d)=>
                      return (d.contains('/c/') && d.contains('/product/'))
                      ));





                      share|improve this answer



























                        0














                        You can achieve this by using .filter instead of .map method.



                        Here is what you can try:



                        const hrefs = await page.$$eval('a', as => as.filter((d)=>
                        return (d.contains('/c/') && d.contains('/product/'))
                        ));





                        share|improve this answer

























                          0












                          0








                          0







                          You can achieve this by using .filter instead of .map method.



                          Here is what you can try:



                          const hrefs = await page.$$eval('a', as => as.filter((d)=>
                          return (d.contains('/c/') && d.contains('/product/'))
                          ));





                          share|improve this answer













                          You can achieve this by using .filter instead of .map method.



                          Here is what you can try:



                          const hrefs = await page.$$eval('a', as => as.filter((d)=>
                          return (d.contains('/c/') && d.contains('/product/'))
                          ));






                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Mar 9 at 9:05









                          raviravi

                          521619




                          521619



























                              draft saved

                              draft discarded
















































                              Thanks for contributing an answer to Stack Overflow!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid


                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.

                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function ()
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55075601%2fhow-to-filter-the-result-of-page-eval%23new-answer', 'question_page');

                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              1928 у кіно

                              Захаров Федір Захарович

                              Ель Греко