Как я могу извлечь данные с этого сайта, используя HTMLAgilityPack? - PullRequest
0 голосов
/ 07 ноября 2019

Я следовал инструкциям по очистке информации с использованием HTMLAgilityPack, вот пример:

using System;
using System.Linq;
using System.Net;

namespace web_scraping_test
{
    class Program
    {
        static void Main(string[] args)
        {
            HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
            HtmlAgilityPack.HtmlDocument doc = web.Load("http://www.yellowpages.com/search?search_terms=Software&geo_location_terms=Sydney2C+ND");
            var names = doc.DocumentNode.SelectNodes("//a[@class='business-name']").ToList();
            foreach (var item in names)
            {
                Console.WriteLine(item.InnerText);
            }
        }
    }
}

Это было легко получить данные, потому что есть общее имя класса, и его легко получить

Я пытаюсь использовать это для очистки информации с этого сайта, https://osu.ppy.sh/beatmapsets/354163#osu/780200

, но я понятия не имею о правильной разметке для получения 'Stitches Shawn Mendes' и значений, указанных вэта диаграмма: диаграмма

Для «Шона Мендеса» разметка '<a class="beatmapset-header__details-text beatmapset-header__details-text--artist" href="https://osu.ppy.sh/beatmapsets?q=Shawn%20Mendes">Shawn Mendes</a>', но я не уверен, как внедрить это в код. Я заменил URL-адрес и изменил имя класса, но каталог этого текста на этом сайте выглядит намного сложнее. Любой совет будет оценен, спасибо!

1 Ответ

0 голосов
/ 07 ноября 2019

Все детали, которые вы ищете, находятся в разметке в виде объекта JSON. Существует блок скрипта с идентификатором "json-beatmapset", если вы очистите его содержимое и проанализируете содержащийся в нем JSON, после этого он должен быть плавным.

...