Forbes — это сайт деловых и финансовых новостей с отличной информацией об отраслях, компаниях и людях по всему миру. Forbes посещают миллионы людей каждый месяц. У них есть рейтинги миллиардеров, бизнес-тенденции и аналитика. Forbes использует JavaScript для динамической загрузки своего контента, поэтому его немного сложно скрейпить с помощью традиционных инструментов.

В этом руководстве вы узнаете, как извлекать данные из Forbes, используя кукольник, браузер без головы. Как только вы освоите основы, мы рассмотрим, как использовать Crawlbase Crawling API для оптимизации извлечения данных. С помощью этих инструментов вы можете собирать данные Forbes для исследований, анализа или личных проектов.

Вот краткое руководство о том, как использовать Forbes для поиска рейтингов миллиардеров:

Содержание

  1. Зачем извлекать данные из Forbes?
  2. Ключевые данные, которые стоит почерпнуть из Forbes
  3. Настройка среды парсинга
  • Установка Кукловода
  • Настройка вашего проекта
  • Установка необходимых библиотек
  1. Очистка Forbes с помощью Puppeteer
  • Проверка структуры HTML
  • Написание скребка-кукловода
  • Хранение данных в файле JSON
  1. Оптимизируйте Forbes Scraping с помощью Crawlbase Crawling API
  • Введение в Crawlbase Crawling API
  • Как использовать Crawlbase с Форбс
  • Пример кода с Crawlbase
  1. Заключение
  2. FAQ

Зачем извлекать данные из Forbes?

Невозможно отрицать, что Forbes обладает огромным количеством информации о бизнесе, финансах и образе жизни. Сбор данных Forbes позволяет отслеживать несколько аспектов, например, самые последние тенденции в бизнесе или анализ богатства миллиардеров. Вот несколько основных причин для сбора данных из Forbes:

Зачем собирать данные из Forbes
  1. Рейтинг миллиардеров: Forbes — это имя, которое все знают по его мировым рейтингам миллиардеров. Эти данные можно просмотреть, чтобы увидеть, как со временем менялось богатство.
  2. Информация о компании: Forbes предлагает лучшие профили компаний, позволяющие оценить состояние бизнеса.
  3. Промышленность Insights: Forbes публикует статьи по различным секторам, включая технологии, финансы, здравоохранение и т. д. Собирайте данные, чтобы отслеживать конкретные отрасли и тенденции.
  4. Финансовые новости: Forbes публикует новости в режиме реального времени и обновления о мировой экономике и рынках. Собирайте эти данные, чтобы отслеживать значимые финансовые события.

Ключевые данные, которые стоит почерпнуть из Forbes

При скрапинге Forbes вам может понадобиться извлечь много точек данных. Вот некоторые из основных точек данных, на которые вам нужно обратить внимание:

Ключевые данные Forbes
  1. Профили миллиардеров: Forbes предоставляет подробные биографии самых богатых людей на планете. Эти профили содержат источник богатства, отрасль, чистую стоимость и страну происхождения.
  2. Профиль компании: Forbes предоставляет комплексные данные о компаниях, такие как доход, численность персонала и сектор. Используйте эти данные для сравнения компаний или отслеживания определенных отраслей с течением времени.
  3. Лучшие списки: Forbes хорошо известен своими списками «Топ», в которые входят 100 крупнейших миллиардеров, крупнейшие транснациональные корпорации и крупнейшие стартапы.
  4. Статьи и новости: Forbes публикует последние новости и подробные статьи о бизнесе, финансах и образе жизни. Чтобы быть в курсе последних новостей, тенденций и мнений экспертов в этой отрасли, просматривайте статьи Forbes.
  5. Данные рынка: Финансовая информация, такая как цены акций, рыночные тенденции и экономические прогнозы, доступна на сайте. Чтобы отслеживать финансовые рынки и получать информацию в режиме реального времени, извлекайте данные рынка Forbes.

Настройка среды парсинга

Для скрапинга данных Forbes нам нужно настроить среду проекта. Нам нужно установить Node.js, Puppeteer и другие необходимые библиотеки. Выполните следующие шаги.

Установка Кукловода

Puppeteer — это библиотека Node.js, которая предоставляет высокоуровневый API для управления Chrome или Chromium, идеально подходящий для скрапинга динамического контента, например Forbes. Чтобы установить Puppeteer, выполните следующие действия:

  1. Убедитесь, что Node.js установлен в вашей системе. Вы можете загрузить его с Официальный сайт Node.js.
  2. Установив Node.js, откройте терминал и выполните следующую команду для установки Puppeteer:
1
npm установить кукловод

Эта команда установит Puppeteer вместе с Chromium, который Puppeteer использует для запуска headless-браузера для сканирования веб-сайтов.

Настройка вашего проекта

Puppeteer установлен. Теперь настройте папку проекта и инициализируйте Node.js. Выполните следующие шаги:

  1. Создайте новый каталог для вашего проекта:
1
2
MkDir форбс-скребок
cd форбс-скребок
  1. Инициализируйте новый проект Node.js, выполнив следующую команду:
1
инициализация npm -y

Эта команда создаст package.json файл, который управляет зависимостями вашего проекта.

Это завершает настройку вашей среды Forbes scraping. Далее мы погрузимся в написание Puppeteer scraper.

Очистка Forbes с помощью Puppeteer

Теперь, когда у нас настроена среда, мы начнем скрапить Forbes с помощью Puppeteer. В этом разделе мы проверим HTML, напишем скраппер, обработаем динамический контент и сохраним скрапированные данные в файле JSON. В этом примере мы будем скрапить Список миллиардеров мира Forbes 2024.

Проверка структуры HTML

Прежде чем писать скрапер, давайте проверим HTML-код сайта Forbes. Это поможет нам определить ключевые элементы, содержащие данные.

Проверка страницы списка миллиардеров

  1. Посетите страницу: Перейдите к списку миллиардеров мира по версии Forbes.
  2. Открытые инструменты разработчика: Щелкните правой кнопкой мыши в любом месте страницы и выберите «Проверить» или нажмите Ctrl+Shift+I открыть Инструменты разработчика.
Страница списка миллиардеров Forbes
  1. Найдите ключевые элементы:
  • Имена/Ссылки миллиардеров: Обычно содержится в <a> теги с классами вроде color-link. Здесь вы получите ссылку на профиль каждого миллиардера.

Собирая данные о каждом миллиардере

  1. Перейти к профилю: Нажмите на ссылку из списка, чтобы открыть страницу профиля миллиардера.
  2. Открытые инструменты разработчика: Щелкните правой кнопкой мыши в любом месте страницы и выберите «Проверить» или нажмите Ctrl+Shift+I открыть Инструменты разработчика.
Страница профиля миллиардера Forbes
  1. Ключевые элементы, на которые следует обратить внимание:
  • Ранг: Ищите ранг, обычно внутри <div> or <span> с классом вроде listuser-item__list--rank.
  • Имя: Обычно внутри тега заголовка, например <h1> с классом вроде listuser-header__name.
  • организация: Найдено либо в <a> or <span> элемент с классами, связанными с организацией.
  • Чистая стоимость: Обычно внутри <div> с такими классами как profile-info__item-value.
  • Биография: Часто встречается внутри неупорядоченного списка (<ul>) элемент.
  • Дополнительная информация: Заголовки и тексты можно найти в элементах с такими классами, как profile-stats__title и profile-stats__text.

Написание скребка-кукловода

Теперь мы можем написать скрапер Puppeteer. Следующий код демонстрирует, как запустить Puppeteer, открыть страницу Forbes и скраперить ключевые точки данных.

Пример кода:

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Const кукловод = требовать(«кукловод»);
Const фс = требовать('фс');

асинхронной функция скребокМиллиардеры() {
Const браузер = Ждите кукловод.запуск({ безголовый: правда });
Const страница = Ждите браузер.новая страница();

// Перейти к списку миллиардеров Forbes
Ждите стр.На(
'https://www.forbes.com/sites/chasewithorn/2024/04/02/forbes-worlds-billionaires-list-2024-the-top-200/?sh=67b3016430a7',
{
Тайм-аут: 0,
},
);

Const ссылки = Ждите страница.$$eval('a.color-link', (связи) => ссылки.кусочек(2).карта((ссылке.) => ссылку.HREF));
Const Списокмиллиардеров = [];

для (позволять ссылке. of ссылки) {
стараться {
Ждите стр.На(связь, { Тайм-аут: 0 });

// Получить рейтинг
Const ранг = Ждите страница.$eval('.listuser-item__list--rank', (el) => .внутреннийтекст.отделка()).поймать(() => «Н/Д»);

// Получить имя
Const имя = Ждите страница.$eval('h1.listuser-header__name', (el) => .внутреннийтекст.отделка()).поймать(() => «Н/Д»);

// Получить заголовок
Const title = Ждите страница
.$оценка('div.listuser-header__headline-default', (el) => .внутреннийтекст.отделка())
.поймать(() => «Н/Д»);

// Получить организацию
Const организация = Ждите страница
.$оценка('a.listuser-header__organization', (el) => .внутреннийтекст.отделка())
.поймать(() => «Н/Д»);

// Получить чистую стоимость
Const чистая стоимость = Ждите страница.$eval('div.profile-info__item-value', (el) => .внутреннийтекст.отделка()).поймать(() => «Н/Д»);

// Получить текст биографии
Const биография = Ждите страница.$eval('ул', (el) => .внутреннийтекст.отделка()).поймать(() => «Н/Д»);

// Получить дополнительные данные стека
Const стекДанные = Ждите стр.оценивать(() => {
позволять данные = {};
Const заголовки = массив.от(документ.запросСелекторВсе('.profile-stats__title'));
Const тексты = массив.от(документ.запросСелекторВсе('.profile-stats__text'));
названия.Foreach((название, я) => (данные[название.внутреннийтекст.отделка()] = тексты[i].внутреннийтекст.отделка()));
возвращают дата;
});

// Передача данных в billionaireList
Список миллиардеров.протолкнуть.({
Ранг: классифицировать,
Имя: имя,
Название: заголовок,
организация: организация,
Чистая стоимость: чистая стоимость,
Стек: стекДанные,
Bio: биография,
});
} поймать (ошибка) {
консоль.журнал(`Ошибка скрейпинга ${ссылка}: ${err}`);
}
}

Ждите браузер.Закрыть();
возвращают Список миллиардеров;
}

скребокМиллиардеры().тогда((данным) => {
консоль.журнал(данные); // Вывод данных на консоль
});

Хранение данных в файле JSON

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

Пример кода:

1
2
3
4
5
6
7
8
асинхронной функция сохранитьДанныеВФайл(данные, имя файла = 'forbes_billionaires.json') {
фс.writeFileSync(имя файла, JSON.стягивать(данные, нуль, 2), 'utf-8');
консоль.журнал(`Данные сохранены в ${имя файла}`);
}

скребокМиллиардеры().тогда((данным) => {
сохранитьДанныеВФайл(данные);
});

Это сохранит все извлеченные статьи в forbes_billionaires.json файл, что упрощает доступ к данным и их использование в будущем.

Полный пример кода

Вот полный код, объединяющий все шаги:

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Const кукловод = требовать(«кукловод»);
Const фс = требовать('фс');

асинхронной функция скребокМиллиардеры() {
Const браузер = Ждите кукловод.запуск({ безголовый: правда });
Const страница = Ждите браузер.новая страница();

// Перейти к списку миллиардеров Forbes
Ждите стр.На(
'https://www.forbes.com/sites/chasewithorn/2024/04/02/forbes-worlds-billionaires-list-2024-the-top-200/?sh=67b3016430a7',
{
Тайм-аут: 0,
},
);

Const ссылки = Ждите страница.$$eval('a.color-link', (связи) => ссылки.кусочек(2).карта((ссылке.) => ссылку.HREF));
Const Списокмиллиардеров = [];

для (позволять ссылке. of ссылки) {
стараться {
Ждите стр.На(связь, { Тайм-аут: 0 });

// Получить рейтинг
Const ранг = Ждите страница.$eval('.listuser-item__list--rank', (el) => .внутреннийтекст.отделка()).поймать(() => «Н/Д»);

// Получить имя
Const имя = Ждите страница.$eval('h1.listuser-header__name', (el) => .внутреннийтекст.отделка()).поймать(() => «Н/Д»);

// Получить заголовок
Const title = Ждите страница
.$оценка('div.listuser-header__headline-default', (el) => .внутреннийтекст.отделка())
.поймать(() => «Н/Д»);

// Получить организацию
Const организация = Ждите страница
.$оценка('a.listuser-header__organization', (el) => .внутреннийтекст.отделка())
.поймать(() => «Н/Д»);

// Получить чистую стоимость
Const чистая стоимость = Ждите страница.$eval('div.profile-info__item-value', (el) => .внутреннийтекст.отделка()).поймать(() => «Н/Д»);

// Получить текст биографии
Const биография = Ждите страница.$eval('ул', (el) => .внутреннийтекст.отделка()).поймать(() => «Н/Д»);

// Получить дополнительные данные стека
Const стекДанные = Ждите стр.оценивать(() => {
позволять данные = {};
Const заголовки = массив.от(документ.запросСелекторВсе('.profile-stats__title'));
Const тексты = массив.от(документ.запросСелекторВсе('.profile-stats__text'));
названия.Foreach((название, я) => (данные[название.внутреннийтекст.отделка()] = тексты[i].внутреннийтекст.отделка()));
возвращают дата;
});

// Передача данных в billionaireList
Список миллиардеров.протолкнуть.({
Ранг: классифицировать,
Имя: имя,
Название: заголовок,
организация: организация,
Чистая стоимость: чистая стоимость,
Стек: стекДанные,
Bio: биография,
});
} поймать (ошибка) {
консоль.журнал(`Ошибка скрейпинга ${ссылка}: ${err}`);
}
}

Ждите браузер.Закрыть();
возвращают Список миллиардеров;
}

асинхронной функция сохранитьДанныеВФайл(данные, имя файла = 'forbes_billionaires.json') {
фс.writeFileSync(имя файла, JSON.стягивать(данные, нуль, 2), 'utf-8');
консоль.журнал(`Данные сохранены в ${имя файла}`);
}

скребокМиллиардеры().тогда((данным) => {
сохранитьДанныеВФайл(данные);
});

Пример вывода:

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
[
{
"Классифицировать":"# 1",
"Имя":«Бернард Арно и семья»,
"Заголовок":«Председатель и генеральный директор LVMH Moët Hennessy Louis Vuitton»,
«Организация»:«LVMH Moët Hennessy Louis Vuitton»,
"Нетовар":"$219.2 млрд",
"Куча":{
"Возраст":"75",
«Источник богатства»:«ЛВМХ»,
"Резиденция":"Париж, Франция",
«Гражданство»:"Франция",
"Семейное положение":"Женатый",
"Дети":"5",
"Образование":«Бакалавр искусств/наук, Политехническая школа Парижа»
},
"Био":«Бернард Арно управляет империей LVMH из 75 модных и косметических брендов, включая Louis Vuitton и Sephora.\nLVMH приобрела американскую ювелирную компанию Tiffany & Co в 2021 году за 15.8 млрд долларов, что считается крупнейшим приобретением люксового бренда в истории.\nХолдинговая компания Арно Agache поддерживает венчурную компанию Aglaé Ventures, которая инвестирует в такие предприятия, как Netflix и материнская компания TikTok ByteDance.\nЕго отец заработал небольшое состояние на строительстве; Арно начал свою деятельность, вложив 15 млн долларов из этого бизнеса в покупку Christian Dior в 1984 году.\nВсе пятеро детей Арно работают в LVMH; в июле 2022 года он предложил реорганизовать свою холдинговую компанию Agache, чтобы предоставить им равные доли».
},
{
"Классифицировать":"# 2",
"Имя":«Илон Маск»,
"Заголовок":«Генеральный директор Tesla»,
«Организация»:«Тесла»,
"Нетовар":"$189.2 млрд",
"Куча":{
"Возраст":"52",
«Источник богатства»:«Tesla, SpaceX, самодельные»,
«Самостоятельно сделанная оценка»:"8",
«Оценка филантропии»:"1",
"Резиденция":"Остин, Техас",
«Гражданство»:"Соединенные Штаты",
"Семейное положение":"Одинокий",
"Дети":"11",
"Образование":«Бакалавр гуманитарных и естественных наук, Пенсильванский университет»
},
"Био":«Илон Маск стал соучредителем шести компаний, включая производителя электромобилей Tesla, производителя ракет SpaceX и стартап по строительству туннелей Boring Company.\nОн владеет около 12% Tesla без учета опционов, но заложил более половины своих акций в качестве обеспечения по личным кредитам на сумму до 3.5 млрд долларов.\nВ начале 2024 года судья Делавэра аннулировал сделку Маска 2018 года о получении опционов, эквивалентных дополнительным 9% Tesla. Forbes снизил опционы на 50% в ожидании апелляции Маска.\nSpaceX, основанная в 2002 году, стоит почти 180 миллиардов долларов после тендерного предложения в декабре 2023 года на сумму до 750 миллионов долларов; акции SpaceX выросли в пять раз за четыре года.\nМаск купил Twitter в 2022 году за 44 миллиарда долларов, после того как позже попытался отказаться от сделки. Ему принадлежит примерно 74% компании, которая теперь называется X.\nForbes оценивает, что Доля Маска в X теперь стоит почти на 70% меньше, чем он за нее заплатил, исходя из оценки компании инвестором Fidelity по состоянию на декабрь 2023 года».
},
{
"Классифицировать":"# 3",
"Имя":"Джефф Безос",
"Заголовок":«Председатель и основатель Amazon»,
«Организация»:«Амазонка»,
"Нетовар":"$202.4 млрд",
"Куча":{
"Возраст":"60",
«Источник богатства»:«Amazon, самодельный»,
«Самостоятельно сделанная оценка»:"8",
«Оценка филантропии»:"2",
"Резиденция":"Майами, Флорида",
«Гражданство»:"Соединенные Штаты",
"Семейное положение":"Помолвлен",
"Дети":"4",
"Образование":«Бакалавр гуманитарных и естественных наук, Принстонский университет»
},
"Био":«Джефф Безос основал гиганта электронной коммерции Amazon в 1994 году в своем гараже в Сиэтле.\nБезос ушел с поста генерального директора, чтобы стать исполнительным председателем в 2021 году. Ему принадлежит чуть менее 10% компании.\nОн и его жена Маккензи развелись в 2019 году после 25 лет брака, и он передал ей четверть своей тогдашней 16%-ной доли в Amazon.\nБезос пожертвовал акции на сумму более 1.1 миллиона долларов некоммерческим организациям в 2023 году, хотя неясно, какие организации получили эти акции.\nОн владеет The Washington Post и Blue Origin, аэрокосмической компанией, разрабатывающей ракеты; в июле 2021 года он совершил короткий полет в космос на одной из них.\nВ интервью CNN в ноябре 2022 года Безос заявил, что планирует раздать большую часть своего богатства при жизни, не раскрывая конкретных подробностей».
},
{
"Классифицировать":"# 4",
"Имя":"Марк Цукерберг",
"Заголовок":«Соучредитель Meta Platforms»,
«Организация»:«Метаплатформы»,
"Нетовар":"$184.3 млрд",
"Куча":{
"Возраст":"39",
«Источник богатства»:«Facebook, сделанный своими руками»,
«Самостоятельно сделанная оценка»:"8",
«Оценка филантропии»:"2",
"Резиденция":«Пало-Альто, Калифорния»,
«Гражданство»:"Соединенные Штаты",
"Семейное положение":"Женатый",
"Дети":"3",
"Образование":«Отчисление из Гарвардского университета»
},
"Био":«19-летний Марк Цукерберг запустил Facebook в 2004 году, чтобы студенты могли сопоставлять имена с фотографиями одноклассников.\nЦукерберг вывел Facebook на биржу в 2012 году; теперь ему принадлежит около 13% акций компании.\nFacebook сменил название на Meta в 2021 году, чтобы сместить фокус компании на метавселенную.\nВ 2015 году Цукерберг и его жена Присцилла Чан пообещали отдать 99% своей доли в Meta в течение своей жизни».
},
.... более
]

В следующем разделе мы обсудим, как оптимизировать сбор данных Forbes с помощью Crawlbase Crawling API.

Оптимизируйте Forbes Scraping с помощью Crawlbase Crawling API

Puppeteer отлично подходит для парсинга динамических веб-сайтов, но медленный при работе с большими данными или тяжелыми страницами JavaScript, такими как Forbes. Для оптимизации парсинга и производительности мы можем использовать Crawlbase Crawling API, что упрощает обработку контента, визуализируемого с помощью JavaScript, и обеспечивает больший контроль и эффективность.

Введение в Crawlbase Crawling API

Crawlbase Crawling API обходит распространенные проблемы веб-скрапинга, такие как CAPTCHA, динамическая загрузка контента и сложные HTML-структуры. Для скрапинга Forbes Crawlbase предлагает оптимизированное решение, обрабатывающее рендеринг JavaScript напрямую, что делает его более эффективной альтернативой Puppeteer для крупных проектов по сбору данных.

Зачем использовать Crawlbase для сбора информации от Forbes?

  • Обрабатывает динамический контент: Оптимизировано для страниц с большим объемом JavaScript, таких как Forbes.
  • Улучшенная скорость и масштабируемость: Нет необходимости в headless-браузерах, более быстрый сбор данных.
  • Упрощает процесс: Простые вызовы API для извлечения данных, встроенные CAPTCHA и механизмы защиты от извлечения данных.

Как использовать Crawlbase с Форбс

Чтобы очистить Forbes, используя Crawlbase, вам нужно зарегистрироваться и получить свой API-токен. Вот как начать:

  1. Зарегистрируйте Crawlbase: Создайте учетную запись на Crawlbase и получите свой API токен. Вам нужен JS токен для Forbes.
  2. Установите Crawlbase Библиотека: В вашей среде Node.js установите Crawlbase Crawling API библиотека с использованием:
1
npm установить crawlbase
  1. Настройте свой запрос: Инициализировать Crawlbase API с вашим токеном и отправляйте запросы GET для извлечения данных Forbes.

Пример кода с Crawlbase

Вот пример кода с использованием Crawlbase Библиотека JavaScript для более эффективного извлечения данных Forbes:

Пример кода:

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Const { CrawlingAPI знак равно требовать('crawlbase');
Const Привет = требовать('привет');
Const фс = требовать('фс');

// Инициализируем Crawlbase API с вашим токеном доступа
Const API = новый CrawlingAPI({ знак: 'CRAWLBASE_JS_TOKEN' });

асинхронной функция fetchForbesHTML(URL) {
стараться {
Const ответ = Ждите пчелы.получить(url, {
ajax_wait: 'правда', // Ожидание завершения запросов AJAX
страница_ожидание: '5000',
});

if (ответ.код состояния === 200) {
возвращают ответ.тело;
} еще {
консоль.журнал(`Не удалось получить данные. Код статуса: ${response.statusCode}`);
возвращают нуль;
}
} поймать (ошибка) {
консоль.ошибка(`Ошибка получения данных: ${ошибка}`);
возвращают нуль;
}
}

асинхронной функция parseForbesData(HTML) {
Const $ = привет.загрузка(html);

позволять Списокмиллиардеров = [];
$('.color-link')
.кусочек(2)
.каждый(асинхронной функция () {
Const ссылка = $(этой).Attr('href');

стараться {
Const detailPageHtml = Ждите fetchForbesHTML(связь);
Const $page = привет.загрузка(detailPageHtml);

позволять рейтинг = $страница('.listuser-item__list--rank').текст().отделка() || «Н/Д»;
позволять имя = $страница('h1.listuser-header__name').текст().отделка() || «Н/Д»;
позволять заголовок = $страница('div.listuser-header__headline-default').текст().отделка() || «Н/Д»;
позволять организация = $страница('a.listuser-header__organization').текст().отделка() || «Н/Д»;
позволять чистая стоимость = $page('div.profile-info__item-value').текст().отделка() || «Н/Д»;
позволять биография = $page('ул').текст().отделка() || «Н/Д»;
позволять stackData = {};

$страница('.profile-stats__title').каждый((я,) => {
позволять заголовок = $(эл).текст().отделка();
позволять текст = $страница('.profile-stats__text').eq(я).текст().отделка();
stackData[title] = текст;
});

Список миллиардеров.протолкнуть.({
Ранг: классифицировать,
Имя: имя,
Название: заголовок,
организация: организация,
Чистая стоимость: чистая стоимость,
Стек: стекДанные,
Bio: биография,
});
} поймать (ошибка) {
консоль.ошибка(`Ошибка анализа данных для ${ссылка}: ${err}`);
}
});

возвращают Список миллиардеров;
}

асинхронной функция сохранить в файл(данные, имя файла = 'forbes_billionaires.json') {
фс.writeFileSync(имя файла, JSON.стягивать(данные, нуль, 2), 'utf-8');
консоль.журнал(`Данные сохранены в ${имя файла}`);
}

(асинхронной функция () {
Const URL =
'https://www.forbes.com/sites/chasewithorn/2024/04/02/forbes-worlds-billionaires-list-2024-the-top-200/?sh=67b3016430a7';
Const html = Ждите fetchForbesHTML(URL-адрес);
if (html) {
Const данные = Ждите parseForbesData(html);
Ждите сохранить в файл(данные);
}
}) ();

Пояснение к Кодексу:

  1. инициализировать Crawlbase: CrawlingAPI инициализируется вашим Crawlbase токен для доступа к API для скрапинга.
  2. Получить запрос: Мы используем api.get() для скрапинга URL-адреса Forbes. Мы используем ajax_wait и page_wait чтобы убедиться, что весь динамический контент загружается.
  3. HTML-парсинг: Мы используем cheerio для анализа HTML и извлечения ключевых точек данных.
  4. Хранение данных : Извлеченные данные сохраняются в файле JSON.

Таким образом, сбор данных Forbes становится более эффективным, Crawlbase обрабатывает рендеринг JavaScript и сложные структуры контента.

Оптимизируйте Forbes Scraping с помощью Crawlbase

Анализируете ли вы бизнес-тенденции, финансовые новости или рейтинги ведущих компаний, сбор данных из Forbes может быть очень полезным. Хотя такие инструменты, как Puppeteer, отлично подходят для обработки страниц, отображаемых JavaScript, они требуют много времени и ресурсов. Использование Crawlbase Crawling API упрощает процесс и ускоряет сбор динамического контента.

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

📜 Как скопировать Monster.com
📜 Как скрейпить Groupon
📜 Как парсить TechCrunch
📜 Как очистить Clutch.co

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

FAQ

В. Могу ли я извлечь данные из Forbes?

Да, из Forbes можно извлечь данные. Извлечение данных с любого сайта, включая Forbes, должно осуществляться в соответствии с их условиями обслуживания. Всегда проверяйте robots.txt файл и убедитесь, что вы не нарушаете никаких условий относительно извлечения данных. Использование API, таких как Crawlbase помогает вам эффективно выполнять парсинг, придерживаясь лучших практик.

В. Почему мне следует использовать Crawlbase Crawling API вместо Кукловода для выцарапывания Forbes?

Хотя Puppeteer — мощный инструмент для обработки рендеринга JavaScript, он может быть медленным и ресурсоемким. Crawlbase Crawling API упрощает процесс, предлагая предварительно настроенные параметры для обработки динамического контента, что ускоряет сбор данных и сокращает усилия, необходимые для ручного управления сеансами браузера.

В. Как обрабатывать динамический контент Forbes при парсинге?

Forbes использует JavaScript для динамической загрузки большей части своего контента. Использование Puppeteer или Crawlbase Crawling API с такими опциями, как ajax_wait и page_wait, вы можете убедиться, что контент полностью загружен перед скрапингом. Это гарантирует, что вы захватите все соответствующие данные со страницы.