Как можно получить номер последной страницы
Нужно получить номер последной страницы для парсинга.
Классификация:
1)Когда можно получить номер последной страницы,как она есть сайте как в теге a kinoprofi.vip/.
То есть если спарсить все теги а из блока div можно получить номер последной страницы.
Код html
<div class="navigation-block">
<div class="navigation">
<span>Назад</span> <span>1</span> <a href="https://kinoprofi.vip/page/2/">2</a> <a href="https://kinoprofi.vip/page/3/">3</a> <a href="https://kinoprofi.vip/page/4/">4</a> <a href="https://kinoprofi.vip/page/5/">5</a> <span class="nav_ext">...</span> <a href="https://kinoprofi.vip/page/1017/">1017</a> <a href="https://kinoprofi.vip/page/2/" class="next">Далее</a>
</div>
2)Когда нужно нажать номер последной страницы тогда получаем другие страницы ekb.zarplata.ru.
Тут мы получим следующие номера страниц только после нажатия последнюю,то есть 5ст и так далее.
Как тогда получить последнюю страницу,думаю не вариант клацать на сайте в поисках последний страницы ?! Думаю такой парсер никому не нужен.
Код html
3)Когда нажата кнопка получаем следующую страницу prom.ua,тут тоже не понятно как получить номер последной страницы.
Код html
<div class="ek-box ek-box_padding_xs"><button data-qaid="load-more-button" type="button" class="ek-button ek-button_theme_yellow ek-button_width_1-1"><div>Показати ще</div></button></div>
Ответы (1 шт):
Ответ на мой вопрос перебор всех страниц пока есть данные. Спасибо за помощь EvgeniyZ
int numpage = 1;
while (true)
{
Console.WriteLine(numpage);
string correntpage = $"{Url}{numpage}&tags={ArtistName}";
HttpResponseMessage responce = await client.GetAsync(correntpage); //Получаем ответ с сайта.
string source = default;
if (responce != null && responce.StatusCode == HttpStatusCode.OK)
{
source = await responce.Content.ReadAsStringAsync();//Помещаем код страницы в переменную.
}
HtmlParser domParser = new HtmlParser();
IHtmlDocument document = await domParser.ParseDocumentAsync(source);
var fileslinks = document.QuerySelectorAll("article.post-preview").Select(el => el.GetAttribute("data-file-url")).ToArray();
Console.WriteLine($"Количиство ссылок{fileslinks.Length}");
if (fileslinks.Length == 0)
{
Console.WriteLine("Нет больше страниц");
break;
}
numpage++;
}
Нашел реализацию многопоточного парсера Многопоточный парсинг на C# и работа с базой данных.
