Как бороться с пагинацией при соскобе - PullRequest
0 голосов
/ 21 ноября 2018

Сайт, который я вычищаю в образовательных целях, имеет нумерацию страниц.

Мой код отлично обрабатывает первую страницу ...

Но как бы я поцарапал

?page=2
?page=3
?page=4
?page=5

И дальше ?? ...

Следует отметить, что я искал решения, но, похоже, не могу найти ничего, что бы окончательно отвечало тому, что мне нужно знать.

Текущий код:

// @nuget: HtmlAgilityPack
using System;
using System.Data;
using System.Data.SqlClient;
using System.Net;
using HtmlAgilityPack;


public class Program

{

    public static void Main()
    {


        ServicePointManager.Expect100Continue = true;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
               | SecurityProtocolType.Tls11
               | SecurityProtocolType.Tls12
               | SecurityProtocolType.Ssl3;
        HtmlWeb web = new HtmlWeb();
        HtmlDocument html = web.Load("https://www.g2crowd.com/products/google-analytics/reviews");
        //  var divNodes = html.DocumentNode.SelectNodes("//div[@class='mb-2 border-bottom']");

        var divNodes = html.DocumentNode.SelectNodes(@"//div[@itemprop='reviewBody']");

        if (divNodes != null)
        {
            foreach (var tag in divNodes)
            {
                string review = tag.InnerText;
                review = review.Replace("What do you like best?", "What do you like best?\n");
                review = review.Replace("What do you dislike?", "\nWhat do you dislike?\n");
                review = review.Replace("Recommendations to others considering the product", "\n\nRecommendations to others considering the product\n");
                review = review.Replace("What business problems are you solving with the product?  What benefits have you realized?", "\n\nWhat business problems are you solving with the product?  What benefits have you realized?\n");
                Console.WriteLine(review);
                Console.WriteLine("\n------------------------------- Review found. Adding to Database -------------------------------\n");
                review = review.Replace("'", "");
                review = review.Replace("\n", "<br />");
            }
        }
    }
}

1 Ответ

0 голосов
/ 21 ноября 2018

Следующая ссылка выглядит следующим образом:

//link[@rel=next]

Просто продолжайте следовать по ней, пока ее больше нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...