Різниця між гусеницею BeautifulSoup та Scrap?


134

Я хочу створити веб-сайт, який показує порівняння між ціною продукту на Amazon та e-bay. Хто з них буде працювати краще і чому? Я трохи знайомий з BeautifulSoup , але не стільки з Scrapy гусеничної .


6
Чому б ви використовували сканери, коли обидва ці сайти мають чудовий API? aws.amazon.com/python developer.ebay.com/common/api
Inbar Rose

5
Я з Індії, і я думаю, що Amazon-Api не підтримує хосту Індії. для Індії немає api (locale) . HOSTS = {'ca': 'ecs.amazonaws.ca', 'cn': 'webservices.amazon.cn', 'de': 'ecs.amazonaws.de', 'es': 'webservices.amazon.es' , 'fr': 'ecs.amazonaws.fr', 'it': 'webservices.amazon.it', 'jp': 'ecs.amazonaws.jp', 'uk': 'ecs.amazonaws.co.uk' , 'us': 'ecs.amazonaws.com',}
Nishant Bhakta

11
А що робити, якщо я хочу сканувати якийсь інший сайт, на якому немає API?
Нішант Бхакта

@InbarRose Для використання API продукту Amazon потрібен обліковий запис Amazon Associate.
Захарі Райан Сміт

Відповіді:


231

Scrap - це веб-павук або веб-скрепер , ви даєте Scrap кореневу URL-адресу, щоб почати сканувати, потім ви можете вказати обмеження на кількість (кількість) URL-адрес, які ви хочете сканувати та отримувати тощо. Це повна рамка для веб- сканування або сканування .

Поки

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

Простими словами, з Beautiful Soup ви можете побудувати щось подібне до Scrap. Прекрасний суп - це бібліотека, а Скрапія - це повна структура .

Джерело


1
що швидше, я маю на увазі, що я використовую BeautifulSoup, і для запису даних потрібно близько 10 сек? чи відбувається скрапіація швидше, ніж красива?
shuboy2014

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

Я б сказав, Scrap разом з BeautifulSoup буде дуже швидким, і ви зможете отримати найкраще з обох.
Рахул

18

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

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

Погляньте на документацію про скрап, вона дуже проста у використанні.


Тож чи можу я скористатися Scrap на веб-сервері, тому що існує багато залежностей від нього (Twisted, pywin32, pyOpenSSL ete ..). (Вибачте за це нерозумне питання, я новачок у python)
Nishant Bhakta

На веб-сервері? Я ніколи цього не пробую ... я використовую його на оболонці, виконайте "сканування скарапії <ім'я гусеничного>>", щоб запустити павука ... можливо, ви могли б використовувати це на сервері, але ви повинні викликати це за допомогою python модуль підпроцесу ( docs.python.org/2/library/subprocess.html ). Як я вже говорив, ніколи не намагайся цього зробити, але, можливо, це може спрацювати ... просто зауважте, використовуйте повідомлення журналу від scrap лише для того, щоб ви дізналися, де помилки можуть трапитися на вашому сканері (з журналу імпорту скрипії).
rdenadai

4

Обидва використовують для аналізу даних.

Скрап :

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

BeautifulSoup :

  • Beautiful Soup - бібліотека Python для витягу даних з HTML та XML-файлів.

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

Скрапія з BeautifulSoup - одне з найкращих комбо, з яким ми можемо працювати для того, щоб викреслити статичний та динамічний вміст


2

Як я це роблю, це використовувати API eBay / Amazon, а не скрапію, а потім аналізувати результати за допомогою BeautifulSoup.

API дає вам офіційний спосіб отримання тих самих даних, які ви отримали б від сканера-сканера, без необхідності турбуватися про приховування вашої особи, безладдя з проксі-серверами тощо.


8
Питання чітко задає рішення, де API не доступні.
Роханіл

2

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

  • Експорт кормів : це в основному дозволяє нам зберігати дані в різних форматах, таких як CSV, JSON, jsonlines та XML.
  • Асинхронний скрапінг: Scrap використовує скручений фреймворк, який дає нам можливість відвідувати кілька URL-адрес відразу, коли кожен запит обробляється не блокуючим способом (в основному нам не потрібно чекати завершення запиту, перш ніж надсилати інший запит).
  • Селектори : Тут ми можемо порівняти скрап з гарним супом. Селектори - це те, що дозволяє нам вибирати конкретні дані з веб-сторінки, як-от заголовок, певний розділ із назвою класу тощо). Scrap використовує lxml для розбору, який надзвичайно швидкий, ніж гарний суп.
  • Налаштування проксі, агента користувача, заголовків тощо: scrap дозволяє нам динамічно встановлювати та обертати проксі та інші заголовки.

  • Елемент Трубопроводи : Трубопроводи дозволяють обробляти дані після вилучення. Наприклад, ми можемо налаштувати конвеєр для передачі даних на ваш сервер mysql.

  • Файли cookie: scrap автоматично обробляє файли cookie.

тощо.

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

Гарний суп Beautiful Soup - це пакет Python для розбору HTML та XML-документів . Тож за допомогою Супу Beautiful можна розібрати вже завантажену веб-сторінку. BS4 дуже популярний і старий. На відміну від скрапінгу, ви не можете використовувати гарний суп лише для того, щоб зробити сканерів . Вам потрібні інші бібліотеки, наприклад запити, urllib тощо, щоб зробити сканери з bs4. Знову ж таки, це означає, що вам потрібно буде керувати списком скануваних URL-адрес, їх сканувати, обробляти файли cookie, керувати проксі, обробляти помилки, створювати власні функції для пересилання даних у CSV, JSON, XML тощо. Якщо ви хочете пришвидшити ніж вам доведеться використовувати інші бібліотеки, наприклад багатопроцесорні .

Підсумовуючи.

  • Скрапія - це багата рамка, яку ви можете використовувати, щоб почати писати сканери без жодних клопотів.

  • Гарний суп - це бібліотека, яку ви можете використовувати для розбору веб-сторінки. Його не можна використовувати поодинці для вискоблювання Інтернету.

Ви обов'язково повинні використовувати скрапію для свого сайту порівняння цін на Amazon та e-bay. Ви можете створити базу даних URL-адрес і щодня запускати гусеничні роботи (завдання з крон, селера для планування сканів) та оновлювати ціну на вашій базі даних. Таким чином, ваш веб-сайт завжди буде витягувати з бази даних, а сканер і база даних будуть діяти як окремі компоненти.


1

BeautifulSoup - це бібліотека, яка дозволяє отримувати інформацію з веб-сторінки.

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

Ви можете перевірити цей блог, щоб розпочати роботу з Scrap https://www.inkoop.io/blog/web-scraping-using-python-and-scrapy/


0

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


0

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

Кілька основних відмінностей:

  1. BeautifulSoup порівняно легше засвоїти, ніж Scrap.
  2. Розширення, підтримка, спільнота для Scrap більше, ніж для BeautifulSoup.
  3. Скрапію слід розглядати як Павука, тоді як BeautifulSoup - Парсер .
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.