powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Выгрузить данные из web-сайта
3 сообщений из 3, страница 1 из 1
Выгрузить данные из web-сайта
    #39904416
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Пишу парсер для сайта https://market.yandex.ru/. Для начала нужно программно нажать "Все категории", потом "Электроника" - "Смартфоны". "Электроника" можно проигнорировать. Потом выгружать данные по товарам по заданным фильтрам.

Если в Google Chrome нажать на F12 ("Просмотреть код"), то элемент "Все категории" относится к тегу
Код: html
1.
2.
3.
4.
5.
6.
7.
<div class="n-w-tab__control b-zone b-spy-events i-bem n-w-tab__control_js_inited"
    data-bem="{&quot;b-zone&quot;:{&quot;name&quot;:&quot;all-categories&quot;},&quot;b-spy-events&quot;:&quot;&quot;}">
    <div class="n-w-tab__control-hamburger">
        <div class="n-w-tab__control-bar"></div>
        <div class="n-w-tab__control-bar"></div>
        <div class="n-w-tab__control-bar"></div>
    </div><span>Все категории</span></div>

Хотя при F12 мы получаем не полную HTML-страницу.

Похоже элемент "Все категории" вставлен в JavaScript и не понятно - как вытащить этот элемент, чтобы программно нажать.

Как можно вытащить этот элемент, чтобы программно нажать? Или этот сайт (то есть элемент) является динамическим из за того что в JavaScript, что никак не вытащишь?

C#
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
using System;
using System.Text;
using System.Net;
using System.IO;
using HtmlAgilityPack;
using HtmlDocument = HtmlAgilityPack.HtmlDocument;

namespace Parser
{
    class Class1
    {
        void Parser() {
            string url = "https://market.yandex.ru/";
            
            var pageContent = LoadPage(url);
            var document = new HtmlDocument();
            document.LoadHtml(pageContent);

            //... element = document.DocumentNode.SelectNodes("...");
        }
        
        static string LoadPage(string url)
        {
            string result = "";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            if (response.StatusCode == HttpStatusCode.OK)
            {
                Stream receiveStream = response.GetResponseStream();
                if (receiveStream != null)
                {
                    StreamReader readStream;
                    if (response.CharacterSet == null)
                        readStream = new StreamReader(receiveStream);
                    else
                        readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
                    result = readStream.ReadToEnd();
                    readStream.Close();
                }
                response.Close();
            }
            return result;
        }
       
    }
}

...
Рейтинг: 0 / 0
Выгрузить данные из web-сайта
    #39904417
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk
Пишу парсер для сайта https://market.yandex.ru/.
Как только ты его запустишь в автоматическом режиме, тебя забанят
...
Рейтинг: 0 / 0
Выгрузить данные из web-сайта
    #39904419
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Selenium WebDriver , https://selenium.dev/, рекомендую Firefox
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Выгрузить данные из web-сайта
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]