Информация об изменениях

Сообщение Re[6]: Как распарсить СМИ2? от 05.11.2024 8:25

Изменено 05.11.2024 8:26 Passerby

Re[6]: Как распарсить СМИ2?
Здравствуйте, Sinclair, Вы писали:
S>Что именно вызывает затруднения?
Всем спасибо. Вызывало затруднение незнание PHP. Сделал так:
using var result = await client.PostAsync("https://smi2.ru/newdata/jsapi?action=articles", new StringContent("{ \"block_id\":84683, \"count\":50, \"fields\":4194303 }", Encoding.UTF8, "application/json")).ConfigureAwait(false);
if (result.IsSuccessStatusCode)
{
var message = result.Content.ReadAsStringAsync().Result;
try
{
if (countError != 0) WriteLine(DateTime.Now + " Возобновление");
countError = 0;

List<string> listTitlesNew = new(4);
string substringStart = "\"title\":\"";
string substringEnd = "\",\"topic_id\"";
int index = message.IndexOf(substringStart, 0);
int l = substringStart.Length;
while (index > -1)
{
int indexEnd/*1*/ = message.IndexOf(substringEnd, index + l);
listTitlesNew.Add(message.Substring(index + l, indexEnd — index — l));
index = message.IndexOf(substringStart, indexEnd + 2);
}

foreach (var v in listTitlesNew)
if (listTitles != null && !listTitles.Contains(v) || listTitles == null)
{
WriteLine(DateTime.Now + " " + v + " https://smi2.ru/");
string sLow = v.ToLower();

bool china = sLow.Contains("китай") && sLow.Contains("тайвань");

if (china)//if (DateTime.Now.Hour > 9 && DateTime.Now.Hour < 23)
{
WhileSpeek("СМИ 2 " + v);
}
}
listTitles = listTitlesNew;
}
catch (Exception e) { if (countError > 10) speek.Speak(DateTime.Now + " Нет ответа от сервера"); Thread.Sleep(15000); }
Thread.Sleep(5000);
}
Конечно красивее https://rsdn.org/forum/dotnet/8845783?tree=tree
Автор: kov_serg
Дата: 03.11 01:12
Но чтобы разделы печатать, нужно теги считат, что лень.
Re[6]: Как распарсить СМИ2?
Здравствуйте, Sinclair, Вы писали:
S>Что именно вызывает затруднения?
Всем спасибо. Вызывало затруднение незнание PHP. Сделал так:
using var result = await client.PostAsync("https://smi2.ru/newdata/jsapi?action=articles", new StringContent("{ \"block_id\":84683, \"count\":50, \"fields\":4194303 }", Encoding.UTF8, "application/json")).ConfigureAwait(false);
if (result.IsSuccessStatusCode)
{
    var message = result.Content.ReadAsStringAsync().Result;
    try
    {
        if (countError != 0) WriteLine(DateTime.Now + " Возобновление");
        countError = 0;

        List<string> listTitlesNew = new(4);
        string substringStart = "\"title\":\"";
        string substringEnd = "\",\"topic_id\"";
        int index = message.IndexOf(substringStart, 0);
        int l = substringStart.Length;
        while (index > -1)
        {
            int indexEnd/*1*/ = message.IndexOf(substringEnd, index + l);
            listTitlesNew.Add(message.Substring(index + l, indexEnd - index - l));
            index = message.IndexOf(substringStart, indexEnd + 2);
        }

        foreach (var v in listTitlesNew)
            if (listTitles != null && !listTitles.Contains(v) || listTitles == null)
            {
                WriteLine(DateTime.Now + "  " + v + " https://smi2.ru/");
                string sLow = v.ToLower();              
                
                bool china = sLow.Contains("китай") && sLow.Contains("тайвань");

                if (china)//if (DateTime.Now.Hour > 9 && DateTime.Now.Hour < 23)
                {
                    WhileSpeek("СМИ 2 " + v);
                }
            }
        listTitles = listTitlesNew;
    }
    catch (Exception e) { if (countError > 10) speek.Speak(DateTime.Now + " Нет ответа от сервера"); Thread.Sleep(15000); }
    Thread.Sleep(5000);
}

Конечно красивее https://rsdn.org/forum/dotnet/8845783?tree=tree
Автор: kov_serg
Дата: 03.11 01:12
Но чтобы разделы печатать, нужно теги считат, что лень.