ScraperFlyAPI веб-даних для AI

developer api

Приклад API веб-скрапінгу на Python для захоплення публічних сторінок

Використовуйте ScraperFly як шар захоплення для робочих процесів скрапінгу на Python: протестуйте публічну URL-адресу, виберіть HTML, текст, Markdown, метадані JSON, знімок екрану або PDF, додайте рендеринг або маршрутизацію лише тоді, коли це потрібно, а потім передайте відповідь у скрипти, блокноти, черги або конвеєри даних.

Робочий процес на Python

Використовуйте Python для роботи з даними та ScraperFly для захоплення сторінок

Python є потужним інструментом для парсингу, валідації, зберігання, аналізу та переміщення веб-даних через завдання, блокноти, черги та AI-пайплайни. Неправильно витрачати час на те, щоб кожен проект на Python підтримував браузерних працівників, маршрутизацію проксі, захоплення скріншотів, генерацію PDF, логіку повторних спроб та конвертери виходу, перш ніж відповідь сторінки буде підтверджена.

ScraperFly надає командам Python один хостинг для захоплення публічних сторінок. Почніть з реальної URL-адреси, виберіть форму відповіді, яку може використовувати ваш код, перевірте докази та додайте рендеринг, сесії, заголовки, цільову країну, затримки або більш потужну маршрутизацію лише тоді, коли ціль покаже, що вони покращують результат.

requests або httpxблокнотидані пайплайни
Розробник, що використовує Python з робочим процесом відповіді API веб-скрапінгу

Як використовувати API веб-скрапінгу з Python?

Використовуйте Python для відправки публічної цільової URL-адреси та параметрів запиту до хостингового API веб-скрапінгу, а потім обробляйте повернуту відповідь у своєму коді. API обробляє захоплення сторінок, рендеринг за потреби, контролі маршрутизації, сесії, заголовки та формати виходу. Python обробляє парсинг, валідацію, зберігання, планування, перевірки якості даних, сповіщення та бізнес-логіку нижнього рівня.

Цей розподіл робить робочий процес практичним. Маленький скрипт може викликати ScraperFly з цільовою URL-адресою, запитати HTML, текст, Markdown, метадані JSON, скріншот або PDF, а потім передати цю відповідь BeautifulSoup, lxml, pandas, завантажувачу бази даних, працівнику черги або етапу споживання AI. Профіль запиту залишається явним, а не закопаним у коді браузера, проксі-склеюванні, кастомних повторних спробах та конвертерах.

Практичний висновок: нехай ScraperFly надійно захоплює публічну сторінку, а потім нехай Python виконує роботу з даними, якою насправді володіє ваш продукт.

Що має довести перший скрипт для скрапінгу на Python?

Перший скрипт має довести ціль, а не всю виробничу систему. Відправте одну репрезентативну URL-адресу, запитайте найпростіший корисний вихід і перевірте відповідь перед запуском партії. Перевірте фінальну URL-адресу, статус, тип вмісту, розмір відповіді, вихідне тіло та чи дійсно присутні поля, які потрібні вашому робочому процесу. Якщо сирий HTML містить корисні дані, зберігайте запит легким. Якщо сторінка є тонкою оболонкою, порівняйте рендеринг перед написанням селекторів.

Добре перше тестування також відокремлює захоплення сторінки від парсингу. Не вважайте порожній результат парсера доказом того, що ціль не вдалася. Спочатку підтверджуйте, чи містить відповідь API вміст. Потім вирішуйте, чи потрібно змінити парсер Python, формат виходу, вибір рендерингу або профіль запиту.

Перша перевірка Що дізнається Python Наступна дія
Фінальна URL-адреса та статус Чи ціль була вирішена, перенаправлена, зазнала невдачі або повернула використовувану сторінку Запишіть це перед парсингом, щоб невдачі залишалися діагностованими.
Сирий HTML-код Чи існує корисний вміст без виконання браузера Використовуйте найменший профіль, коли вихідний HTML є повним.
Рендеринг виходу Чи змінює JavaScript вміст, який отримує Python Увімкніть рендеринг лише для шаблонів, які цього потребують.
Формат відповіді Чи потрібен нижньому коду розмітка, читабельний текст, метадані або візуальне підтвердження Виберіть формат перед створенням конвертерів.
Результат парсера Чи відповідають селектори або логіка витягування реальній формі сторінки Виправте парсинг після того, як докази захоплення відомі.

Який формат відповіді має запитувати Python?

Найкращий формат відповіді залежить від споживача Python. HTML підходить, коли ваш парсер потребує структури DOM, селекторів, атрибутів, таблиць, посилань або вбудованих метаданих. Текст і Markdown краще, коли робочий процес потребує читабельного вмісту для пошуку, класифікації, резюме, споживання RAG або огляду. Метадані JSON допомагають веденню журналу та діагностиці, оскільки надають Python докази відповіді без примусу парсера виводити все з тіла. Скріншоти та PDF корисні, коли людям потрібно візуальне підтвердження для QA, моніторингу, затверджень або архівів.

Цей вибір важливий, оскільки Python полегшує створення конвертерів занадто рано. Команда може витратити дні на перетворення HTML у форму, яку ScraperFly вже може повернути. Тестуйте формати спочатку, а потім пишіть лише код парсингу та валідації, який ваш продукт все ще потребує.

Для повного посібника з прийняття рішень використовуйте сторінку форматів відповіді API веб-скрапінгу перед тим, як закріпити модель даних Python.

Потреба Python Формат для тестування Чому це підходить Компроміс, який слід пам'ятати
Селектори, таблиці, посилання, атрибути HTML або рендеринг HTML Зберігає структуру сторінки для BeautifulSoup, lxml або кастомних парсерів Вимагає очищення та специфічного для цілі витягування.
Пошук, резюме, легкий аналіз Текст Компактний вихід, який легко зберігати та порівнювати Втрачає більшість структури DOM.
Споживання AI або RAG Markdown Зберігає читабельні заголовки, посилання та розділи Не ідеально, коли важливі селектори або точні відносини DOM.
Ведення журналу та діагностика Метадані JSON Фіксує статус, фінальну URL-адресу, тип вмісту, розмір та операційний контекст Не замінює витягування полів з цільового вмісту.
Огляд, моніторинг, архів, підтвердження Скріншот або PDF Показує, як виглядала рендерингова публічна сторінка для людини Важче, ніж вихід, зручний для машин.

Коли Python має увімкнути рендеринг, сесії, заголовки або маршрутизацію?

Увімкніть розширені контролі, коли конкретний зразок цілі доводить, що простий запит недостатній. Рендеринг JavaScript корисний, коли вихідний HTML не містить вмісту, який з'являється після виконання браузера. Заголовки корисні, коли публічна сторінка очікує легітимного контексту запиту, такого як мова, прийнятий тип вмісту або поведінка реферера. Сесії корисні, коли пов'язані запити залежать від спільних куків або стану. Маршрутизація за країною корисна, коли публічний вміст змінюється за регіоном, мовою, валютою, доступністю або шляхом перенаправлення. Сильніша маршрутизація корисна, коли повторні докази показують, що нормальний шлях доставки не може отримати використовувану відповідь.

Python спокушає включити кожну опцію в повторно використовувану допомогу та забути, чому вона існує. Стійте проти цього. Залишайте профілі запитів прив'язаними до типів сторінок. Стаціонарна стаття не повинна успадковувати той же профіль, що й продуктова сітка з великою кількістю JavaScript або сторінка регіональної доступності. Це контролює затримку, витрати та налагодження.

Використовуйте посібник API рендерингу JavaScript для сторінок, створених браузером, сторінку API сесій для стану, сторінку API скрапінгу з кастомними заголовками для контексту запиту та сторінку API скрапінгу з ротаційними проксі коли важливий шлях доставки.

Як Python має обробляти невдачі скрапінгу?

Робочий процес скрапінгу на Python не повинен сліпо повторювати кожну невдачу. Деякі невдачі є проблемами конфігурації: неправильно сформовані URL-адреси, відсутні ключі API, непідтримувані формати, недійсні вибори виходу файлів або параметри запиту, які не відповідають цілі. Повторні спроби лише витрачають час. Інші невдачі є тимчасовими або пов'язаними з ціллю: тайм-аути, обмеження швидкості, відповіді 5xx з верхнього рівня, цикли перенаправлення, порожні відповіді, надмірні сторінки або тайм-аути рендерингу. Ці потребують контрольованого зниження, порівняння зразків та чіткої реєстрації.

Відповідь API повинна повідомити Python, що сталося. Зберігайте статус, фінальну URL-адресу, тип вмісту, розмір відповіді, профіль запиту та історію повторних спроб з проаналізованим результатом. Це робить невдачі корисними. Якщо рендеринг виходу порожній, команда може порівняти вихідний HTML, рендеринг HTML, стан скріншота, час очікування та статус цілі перед ескалацією. Якщо з'являються обмеження швидкості, Python може сповільнити роботу замість збільшення тиску. Якщо ціль заблокована або специфічна для регіону, робочий процес може навмисно протестувати маршрутизацію.

Посібник обробки помилок нижче йде глибше, але основний принцип простий: виправляйте погані входи, повторюйте тимчасові умови та ескалюйте лише тоді, коли докази це підтримують.

Як можуть залишатися передбачуваними завдання скрапінгу на Python, коли обсяг зростає?

Передбачуваність починається до партії. Класифікуйте цільові сторінки за вагою запиту: простий HTML, рендеринг HTML, заголовки або сесії, регіональна маршрутизація, преміум-доставка, скріншот, PDF або комбінації цих контролів. Запускайте невеликі зразки для кожного типу сторінки та реєструйте, який профіль насправді працює. Потім масштабуйте з окремими чергами або налаштуваннями завдань, а не розглядаючи кожну URL-адресу як однаковий вид скрапінгу.

Це допомагає як інженерії, так і виставленню рахунків. Одноразовий аналіз може залишатися на кредитах за принципом "плати за використання". Повторювані завдання можуть перейти на місячні кредити, коли шаблон стає зрозумілим. Дорогі контролі можуть бути зарезервовані для шаблонів, які доводять, що вони їх потребують. Python залишається відповідальним за оркестрацію завдань, обмеження, паралелізм, зберігання та сповіщення, тоді як ScraperFly зберігає варіанти захоплення сторінок явними.

При плануванні обсягу перегляньте ціни та використовуйте докази запиту, а не припущення. Найдешевший надійний робочий процес зазвичай той, який зберігає прості сторінки простими та оновлює лише ті сторінки, які потребують більше допомоги.

Що має належати Python після того, як ScraperFly захопить сторінку?

Python має володіти частинами, які специфічні для вашого продукту: парсинг полів, нормалізація значень, валідація записів, видалення дублікатів, зберігання даних, подача в чергу, запис у сховище, сповіщення або підготовка вмісту для аналітики та AI. ScraperFly має володіти повторюваною роботою захоплення навколо публічних сторінок: отримання, рендеринг за потреби, формати відповіді, сесії, заголовки, контролі маршрутизації та візуальні виходи.

Ця межа робить систему легшою для обслуговування. Якщо парсер зламається, команда може перевірити захоплену відповідь і виправити логіку витягування. Якщо захоплення змінюється, команда може налаштувати профіль запиту без переписування коду Python нижнього рівня. Якщо проект зростає, той же контракт відповіді може перейти з блокнота в заплановану роботу або виробничу службу.

З чого має почати команда Python?

Почніть у API Builder або з невеликого запиту в терміналі. Доведіть одну репрезентативну публічну URL-адресу, виберіть формат відповіді та порівняйте сире та рендеринг захоплення перед написанням повного пайплайну Python. Потім перенесіть перевірену форму запиту в Python з HTTP-клієнтом, який ваша команда вже використовує.

Залишайте першу інтеграцію вузькою: один тип цілі, один формат, чіткі журнали та парсер, який перевіряє на відсутні поля. Коли цей шлях стане надійним, додайте партії, повторні спроби, поведінку черги, зберігання та моніторинг. Це надає команді виробничий шлях, не перетворюючи перший скрипт Python на повну платформу для скрапінгу.

Шлях запиту Python

Перейдіть з перевіреного запиту ScraperFly на Python без відновлення інфраструктури захоплення

Почніть з одного робочого запиту, а потім використовуйте ту ж URL-адресу, формат, рендеринг, маршрутизацію, заголовки та вибори сесій у скриптах Python, блокнотах, чергах або даних пайплайнах. Python зберігає бізнес-логіку, тоді як ScraperFly зберігає стабільний шар захоплення публічних сторінок.

PY
Готовий до Python

Викликайте один API з інструментів, які ваша команда вже використовує

Використовуйте requests, httpx, блокноти, працівників або бекенд-завдання для відправки того ж перевіреного профілю запиту ScraperFly.

requestshttpxзавдання
FMT
Вихід

Поверніть форму відповіді, яку Python може використовувати негайно

Виберіть HTML для парсерів, текст або Markdown для читабельного вмісту, метадані JSON для діагностики або скріншоти та PDF для візуального підтвердження.

htmlmarkdownjson
OPS
Операції

Залишайте елементи управління захопленням видимими, коли робочий процес зростає

Рендеринг, сесії, заголовки, маршрутизація за країною, затримки та сильніша доставка можуть залишатися прив'язаними до цілей, які насправді їх потребують.

рендерингсесіїмаршрутизація

Параметри запиту Python, які варто спочатку перевірити

url

Публічна сторінка, яку ваш робочий процес Python повинен захопити.

format

Вихід у форматі HTML, тексту, Markdown, JSON метаданих, скріншота або PDF.

render

Виконання в браузері для сторінок, які створюють корисний контент за допомогою JavaScript.

download

Вихідний файл, коли скріншоти або PDF потрібно зберігати роботою Python.

приклад cURL

Генеруйте Markdown з тією ж формою запиту, яку ви можете перенести в продукцію

curl "https://scraperfly.com/api/v1?url=https%3A%2F%2Fexample.com&format=markdown" \
  -H "apikey: YOUR_API_KEY"

Перед кодом Python

Перевірте поведінку цілі перед масштабуванням скриптів або блокнотів

Python робить автоматизацію скрапінгу легкою для повторення, тому профіль запиту потрібно налаштувати правильно з самого початку. Перевірте сирий HTML, потреби в рендерингу, перенаправлення, розмір відповіді, заголовки, сесії та якість виходу на зразках.

Сирова HTML-відповідь, відображена на видимих даних сторінки
01

Доступність сирого HTML

Перевірте, чи поля, які вам потрібні, вже присутні в першій HTML-відповіді.

Найкращий перший тест для простих сторінок, статей, документів, списків та деталей продуктів.

Порівняння до і після рендерингу JavaScript
02

Залежність від JavaScript

Порівняйте сирий HTML з відрендереним DOM або скріншотом перед увімкненням рендерингу браузера.

Використовуйте рендеринг, коли сирий HTML є лише оболонкою, а скрипти створюють корисний контент.

Куки, згода, контекст сесії та доступу для скрапінгу
03

Стан і контекст доступу

Визначте, чи впливають куки, згода, межі входу, пагінація або той самий стан відвідувача на відповідь.

Використовуйте сесії та заголовки, коли безперервність змінює дані, які ви отримуєте.

Регіональні варіації контенту в різних країнах і маршрутах
04

Гео/варіація контенту

Перевірте, чи змінюють країна, мова, валюта, інвентар, SERP, реклама або репутація маршруту результат.

Використовуйте гео- або преміум-маршрути лише тоді, коли ціль підтверджує, що відповідь змінюється залежно від маршруту.

Перевірки перед написанням робочого процесу Python

Де знаходиться цільове поле?

Знайдіть, чи існує поле в сирому HTML, відрендереному DOM, виклику API, структурованих даних, файлі або пізнішому стані взаємодії.

Що змінює відповідь?

Виберіть кілька URL-адрес і порівняйте статус, фінальну URL-адресу, довжину вмісту, перенаправлення, порожні стани та видимі відмінності результатів.

Який контекст потрібен?

Позначте будь-яку залежність від згоди, локалі, куків, заголовків, межі аутентифікації, пагінації, фільтрів або попередніх запитів.

Як виглядає невдача?

Визначте сигнали для заблокованих, часткових, застарілих, перенаправлених, порожніх, з тайм-аутом або регіонально невідповідних відповідей перед масштабуванням.

Як цільові дані змінюють запит Python

Режим отримання

Доступність сирого HTML визначає, чи може перший запит залишатися простим або потребує рендерингу, очікувань, скріншотів або витягування.

Контекст запиту

Вимоги до стану визначають, чи потрібно додавати заголовки, куки, сесії, обробку згоди або стабільний профіль відвідувача.

Вибір маршруту

Гео та репутаційні дані визначають, чи достатньо стандартного маршруту або виправданий маршрут країни/преміум.

Правила валідації

Відомі стани невдачі стають перевірками для повторних спроб, ескалації, перевірки якості та визначення, коли легший профіль все ще є повним.

Обробка помилок

Перетворіть збої в скрапінгу на виправлення

Кожен робочий процес веб-даних зрештою стикається з поганою відповіддю: відсутній URL, недійсний ключ, порожня HTML оболонка, ціль 403, обмеження швидкості, тайм-аут рендерингу, зламане захоплення PDF або JSON навантаження, яке не містить полів, які очікував ваш продукт. ScraperFly створено для того, щоб ці моменти були діагностованими. Ви перевіряєте HTTP статус, стабільний код помилки, профіль запиту та повернутий артефакт, а потім вибираєте найдешевший корисний наступний крок: виправити запит, додати кредити, уповільнити, повторити з відкатом, увімкнути рендеринг, змінити країну, використовувати преміум маршрутизацію, зберегти заголовки або валідувати вихід перед масштабуванням.

Стабільна форма помилкиРішення про повторенняЕскалація з урахуванням витратВалідація виходу
Розробник переглядає код та параметри запиту API на ноутбуці

01 / Налаштування запиту та доступ

Спочатку виправте помилки запиту

Деякі збої не є проблемами цільового запиту. Вони відбуваються до того, як ScraperFly зможе зробити значну спробу доставки: відсутня або неправильно сформована URL-адреса, непідтримуваний формат виводу, несумісний тип візуального файлу, відсутній API-ключ, недійсний ключ або ключ, який було призупинено або вимкнено. Ці помилки є сигналами конфігурації, а не сигналами повторної спроби: зупиніть робочий процес, вкажіть розробнику точне поле, яке потребує виправлення, і зосередьте кредити на реальних цільових тестах замість повторних неправильних введень.

missing_urlinvalid_urlunsupported_formatinvalid_api_key
  • Перевірте URL-адресу та кодування перед відправкою партії.
  • Використовуйте підтримувані формати виводу: HTML, текст, Markdown, JSON, скріншот або PDF.
  • Відповідайте типам файлів скріншотів типам зображень виводу та типу файлу PDF типу виводу PDF.
  • Розглядайте відсутні або недійсні API-ключі як конфігураційну роботу, а не роботу з повторними спробами.
Бізнес-дашборд з графіками, документами та плануванням використання на столі

02 / Кредити, ліміти та паралельність

Відокремте ліміти від збоїв

Робоче навантаження може зазнати невдачі, оскільки на рахунку немає доступних кредитів, досягнуто ліміту місячного плану або одночасність занадто агресивна для поточного плану та цільового міксу. ScraperFly робить ці обмеження видимими як операційні сигнали, а не таємничі збої при скануванні. Це робить рішення про покупку практичним: почніть безкоштовно, протестуйте ціль, купуйте кредити за принципом pay-as-you-go для нерівномірних завдань, переходьте на місячні кредити, коли обсяг стає передбачуваним, і використовуйте зниження навантаження, коли тиск запитів є реальною проблемою.

usage_limit_reachedrate_limitedcreditsbackoff
  • Використовуйте статус облікового запису, щоб перевірити залишкові кредити перед великими запитами.
  • Повторюйте ліміти запитів з backoff замість того, щоб відразу збільшувати навантаження.
  • Тримайте одноразові проекти на оплаті за фактом, коли обсяг нерівномірний.
  • Перенесіть передбачувану повторювану роботу на щомісячні кредити, коли шаблон доведено.
Серверна кімната, що представляє шляхи доставки, маршрутизацію та мережеву інфраструктуру

03 / Цільова доставка та мережа

Спочатку знайдіть збої доставки

Багато платформ для скрапінгу об'єднують проблеми доставки в невизначений збій запиту. У виробництві цього недостатньо. Команда повинна знати, чи вичерпався час запиту, чи повернулася тимчасова помилка сервера з цільового ресурсу, чи з'єднання не вдалося, чи відповідь була занадто великою, чи перенаправлення пішли кудись не туди, чи повернулася сторінка як маленький HTML без корисного контенту. ScraperFly перетворює ці збої на докази доставки: спочатку спробуйте легкий профіль, порівняйте статус і розмір відповіді, а потім виріште, чи потрібно наступному запиту backoff, інший маршрут, преміум-проксі, цільова країна або більш вузьке захоплення.

timeout5xxперенаправленняresponse_too_large
  • Повторюйте тимчасові мережеві та верхні збої з контрольованою політикою backoff.
  • Порівняйте фінальний URL, статус, тип контенту та розмір відповіді між зразками.
  • Ескалюйте маршрутизацію лише тоді, коли відповідь доводить, що простий шлях нестабільний.
  • Розглядайте надмірні відповіді як проблему обсягу перед масштабуванням того ж профілю.
Екран цифрової безпеки, що представляє сигнали захисту від ботів та захищеного доступу

04 / Захист від ботів, гео та блоки доступу

Читати блоки перед ескалацією

Екран цільового 403, 401, 429, CAPTCHA, WAF challenge, стіна входу, цикл згоди або регіональна невідповідність - це не просто помилка; це підказка про те, що сайт очікує від відвідувача. Конкуренти часто підштовхують команди до важчого профілю за замовчуванням, але це може витратити бюджет без доведення виправлення. Кращий шлях ScraperFly - це ескалація на основі доказів: зберігайте реалістичні заголовки, коли контекст має значення, використовуйте сесії, коли безперервність змінює відповідь, увімкніть рендеринг, коли корисний контент створюється браузером, і вибирайте преміум або країнову маршрутизацію, коли репутація або географія змінюють результат.

403429CAPTCHAневідповідність країни
  • Використовуйте преміум маршрутизацію, коли репутація IP є доведеним вузьким місцем.
  • Використовуйте цільову маршрутизацію за країною, коли мова, валюта, інвентар або результати пошуку змінюються в залежності від ринку.
  • Використовуйте заголовки, куки та сесії, коли стан відвідувача змінює відповідь.
  • Зменшуйте одночасність і додавайте затримку, коли повторні запити викликають обмеження цілі.
Розробник готує код та артефакти виходу на ноутбуці

05 / Якість рендерингу та виходу

Відправляйте придатні артефакти

Статус 200 не є тим самим, що й придатний скрап. Сирий HTML може бути порожньою оболонкою програми, Markdown може пропустити основну статтю, JSON може не містити очікуваних метаданих, текст може містити шум, скріншоти можуть бути порожніми, а вихід PDF або зображення може зазнати невдачі, якщо крок браузера вичерпає час. ScraperFly є цінним, оскільки той самий запит API може переходити від сирого HTML до відрендереного DOM, чистого тексту, Markdown, JSON, скріншота або PDF, а потім перевірятися на відповідність артефакту, який насправді потрібен вашому продукту. Це зменшує кількість коду для з'єднання, невдалі імпорти та дорогі пакетні запуски, які виявляють поганий вихід лише після факту.

render_timeoutbrowser_render_failedполя JSONвихід PDF/зображення
  • Увімкніть рендеринг, коли сирий HTML є лише оболонкою, а корисний контент з'являється після JavaScript.
  • Перевірте текст, Markdown та JSON на відповідність очікуваним полям перед пакетною обробкою.
  • Використовуйте знімок екрану або PDF-формат, коли важливі візуальні докази або аудиторські свідчення.
  • Розглядайте порожні або часткові артефакти як невдачі якості, навіть коли статус HTTP успішний.
Підходить ScraperFly

Чистіша відновлення помилок

ScraperFly допомагає командам вирішити, що виправити, що повторити, а що ескалувати, не перетворюючи кожен запит на найдорожчий профіль запиту.

Стабільна форма помилки

Використовуйте HTTP статус і код помилки разом, щоб логіка програми могла вибрати між виправленням введення, оновленням облікових даних, уповільненням, повторенням або ескалацією доставки.

Повторюйте лише тоді, коли це допомагає

Мережеві збої, обмеження швидкості та тимчасові помилки сервера можуть використовувати відкат. Неправильні URL, непідтримувані формати та погані ключі слід виправити один раз.

Ескалація з урахуванням витрат

Почніть з легкого профілю запиту, а потім додавайте рендеринг, преміум маршрутизацію, країну, сесії, заголовки, затримки або візуальне захоплення лише тоді, коли невдача це підтверджує.

Валідація виходу перед масштабуванням

Підтвердіть реальний артефакт, який потрібен вашому продукту: HTML, текст, Markdown, JSON, скріншот або PDF, перш ніж копіювати той самий профіль на великий набір URL.

Дисципліна партій

Зберігайте витрати на запуск Python-скрепінгу доступними, спочатку довівши легкий профіль

Python-завдання можуть швидко масштабуватися. Спочатку протестуйте, тримайте прості запити легкими, а рендеринг, маршрутизацію, сесії або виходи файлів залиште для цілей, де вони покращують результат.

Легкий HTML-запит, що повертає просту відповідь
01

Базовий запит

Використовуйте базовий запит, коли публічний HTML вже містить необхідні вам поля.

Найлегший профіль запиту; зберігайте його, коли відповідь завершена.

Рендеринг JavaScript, що створює повний DOM
02

Рендеринг

Використовуйте рендеринг, коли сирий HTML є оболонкою, а JavaScript завершує сторінку.

Важчий профіль; використовуйте його лише тоді, коли вихід браузера змінює результат.

Кілька запитів з збереженням куків та стану відвідувача
03

Станова сесія

Використовуйте сесії, коли куки, згода, локалізація або пагінація змінюють відповідь.

Важчий профіль стану; зберігайте його лише тоді, коли важлива безперервність.

Маршрутизація запитів через гео та маршрути вищої якості
04

Преміум маршрутизація та гео

Використовуйте преміум маршрутизацію або гео лише тоді, коли походження, країна, репутація або регіональний контент змінюють результат.

Найважчий профіль маршрутизації; застосовуйте його лише до цілей, які доводять, що вони його потребують.

Що може зробити Python-скрепінг важчим

Більше роботи з інфраструктурою

Рендеринг браузера, вибір маршрутизації та довші очікування означають, що платформа повинна виконувати більше, ніж просто повертати просту відповідь.

Більша невизначеність цілі

Редиректи, порожні стани, обмеження швидкості та сторінки викликів часто вимагають більш потужних варіантів доставки або повторних спроб.

Більше стану для збереження

Cookies, сесії, згода та багатосторінкові потоки додають рухомі частини, яких немає у простому безстатевому запиті.

Більше доказів для повернення

Скріншоти, PDF, рендерений вихід та багатші артефакти відповіді корисні, але вони важчі за простий HTML.

Як зберегти витрати на партії передбачуваними

Вибірка перед масштабуванням

Спочатку протестуйте невелику вибірку URL та групуйте цілі за найменшим профілем, який повертає повні дані.

Не рендерити за замовчуванням

Перевірте сирий HTML перед увімкненням рендерингу. Багато публічних сторінок вже містять необхідні вам дані.

Ескалація за доказами

Підвищуйте лише тоді, коли відповідь показує відсутній контент, залежність стану, гео варіацію або проблеми з маршрутизацією.

Вимірюйте корисні результати

Оптимізуйте навколо дійсних записів, що доставляються, а не сирого обсягу запитів. Легший профіль найкращий лише тоді, коли він залишається повним.

Питання Python

Загальні питання про веб-скрепінг на Python з ScraperFly

Практичні відповіді для команд, які використовують Python для захоплення публічних сторінок, вибору форматів відповідей, вирішення, коли потрібен рендеринг, і збереження завдань скрепінгу простими в експлуатації.

Часті питання Python
Запити

Виклик ScraperFly з Python

Використовуйте звичайний HTTP-клієнт і тримайте профіль захоплення явним.

Чи можу я викликати ScraperFly з Python requests або httpx?

Так. Python може викликати ScraperFly, як будь-який хостинг API, а потім обробляти повернений HTML, текст, Markdown, метадані, скріншот або PDF у вашому власному коді.

Чи слід почати з Python чи API Builder?

Почніть з API Builder або невеликого запиту в терміналі, коли це можливо. Коли відповідь буде підтверджена, перенесіть той же профіль запиту в Python.

Вихід

Вибір форматів відповіді

Виберіть формат навколо споживача Python, а не звички.

Який формат виходу найкращий для парсингу в Python?

Використовуйте HTML або відрендерений HTML, коли важливі селектори, посилання, таблиці або атрибути. Використовуйте текст або Markdown, коли робочий процес потребує читабельного контенту.

Чи можуть робочі процеси Python запитувати знімки екрана або PDF?

Так. Знімки екрана та PDF корисні, коли робочий процес потребує візуального підтвердження, перевірки QA, архівних записів або схвалення людиною.

Рендеринг

Обробка JavaScript-сторінок

Рендеринг має вирішити підтверджену прогалину в контенті.

Коли запит Python має увімкнути рендеринг?

Увімкніть рендеринг, коли вихідний HTML не містить контенту, який з'являється після виконання браузера. Залишайте статичні сторінки на легшому захопленні джерела.

Чи важливі сесії та заголовки в парсингу Python?

Вони можуть. Використовуйте заголовки для легітимного контексту запиту та сесій, коли пов'язані публічні запити залежать від спільних куків або стану.

Операції

Запуск завдань у виробництві

Python має володіти конвеєром навколо підтвердженого шару захоплення.

Чи замінює ScraperFly парсинг і зберігання в Python?

Ні. ScraperFly захоплює відповіді публічних сторінок та формати виводу. Python все ще відповідає за витяг, валідацію, зберігання, планування та подальший аналіз.

Як Python повинен повторювати невдалі запити на скрапінг?

Виправляйте погані вхідні дані замість повторних спроб. Повторюйте тимчасові обмеження, мережеві помилки та збої на upstream з обмеженим відступом і чіткими журналами.