/ / Як я можу використовувати гарний суп на кількох сторінках одночасно? - красивий супровід, запит

Як я можу одночасно використовувати красивий суп на кількох сторінках? - гарний суп, прохання

Я використовую гарний суп, щоб скребти веб-сайт. на ній є сторінки даних, які я хочу підсумувати разом. Однак, роблячи це сторінку за сторінкою з прекрасним супом, потрібно приблизно 2 секунди на сторінку, і так потрібно майже день, щоб зробити тисячі сторінок, які я хочу. Багато часу я просто витрачав на очікування запиту на URL, тому я думаю, що я міг би зробити це, розділивши завдання і запустивши сто разів сценаріїв пітона. Але чи є спосіб зробити це в межах одного сценарію python?

Відповіді:

1 для відповіді № 1

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

  1. Затримка під час очікування запиту на URL викликається мережевим вузьким місцем, а не повільним кодом у вашій програмі. Більше потоків може не покращити загальну швидкість, оскільки більше тем не дає швидшого підключення до Інтернету. Можливо, дві-три нитки були б швидшими, ніж одна, але існує межа, в який момент ваша швидкість Інтернету стає слабкою ланкою швидкості.
  2. Якщо сервер, з якого ви зіскоблюєте, бачить, що ви надсилаєте кілька запитів в секунду, ви можете потрапити в чорний список за те, що ви спричиняєте занадто велике навантаження. Це, як правило, хороша практика, коли скребки бути ввічливими до сервера, з якого ви завантажуєте, тобто погана ідея спамувати сервер з декількома запитами швидко.