Pull to refresh
Comments 23
Хорошая статья… для школьника например. Потому что:
1) Сайт вас не каптчил
2) Сайт вас не банил
3) Инфа доступна без регистрации
4) Сайт не написан на реакте (а тем более с рендерингом на клиентской стороне)
(это наверняка не полный список, но конкретно то с чем я сталкивался)
У меня несколько недель 24/7 парсятся свежие Яндекс.Новости. Никто не банил, регистрации не надо, никакого реакта, каптча обходится таймаутом побольше. Что я делаю не так?
С яндексом все проще (было?)(по сравнению с гуглом), ему главное правильную куку подсунуть.
А вы попробуйте снимать 50-100К в сутки с обычного поиска и вордстата — вот тогда и хвастайтесь ;)

В дополнение из личного опыта парсинга:
5) сайт не запрещал скачивать более 1 страницы в 3 секунды
6) сайт не менял дизайн (и верстку соответственно) во время длительного парсинга
7) пагинатор сайта не врал относительно количества страниц (sic!)
8) сайт рандомно не возвращал 50* ошибки
9) сайт не возвращал внезапно вместо ожидаемого JSON страницу html с ошибкой

Для парсинга реакта (да и вообще любых не статических страниц) я недавно использовал связку selenium + phantomjs. Проблем не было. Разве что скорость парсинга оставляет желать лучшего…
Phantomjs немного 1) тормозной 2) палевный. Так что использую Chrome/Firefox с xvfb через Watir::Webdriver
Человек который научиться разбирать налету исходники реакта до этапа рендеринга для любых сайтов (и выдирать оттуда полезную инфу) — озолотиться
Спарсил и молодец. Нет вводного слова, для чего это вообще затевалось, нет итогового проекта на github, куда могли бы отправить свои правки читатели, нет заключительного слова (о том, как после этого данный проект купил Facebook). Интриги нет и накала страстей, а так, подход типичный для задачи – получаем страницу и ходим по DOM.
Я не гений питона — оно однопоточное? Если сайт и не банит и не блочит и рейты там аццкие, то надо делать многопоточку.
Однопоточное, но написано через корутины. Т.е ожидание ответа от сервера не блокирует поток
UFO landed and left these words here
Большое спасибо, вроде программирую на Питоне чуть не каждый день, а вот тема с async/await прошла мимо меня. Для увлекательных путешествий по DOMу кроме XPath могу посоветовать Beautiful Soup — чисто Питоновская библиотека для парсинга HTML (родные Питоновские библиотеки лично мне больше по душе, но дело вкуса). Также рекомендую, дабы не особо наглеть, добавлять задержку хотя бы 0.1 сек между запросами и все-таки не распараллеливать — на Метакритике сработало, а вот на более серьезных ресурсах обязательно нарветесь на капчу после 10 запросов.
Если кто-то напишет как в 2017 году ботом делать высоконагруженный (1M запросов в месяц) поиск по гуглу или яндексу или бингу за адекватные деньги, то ему 100500 в карму.
Адекватные деньги это сколько? Есть AWS с его спот-микро-инстансами, есть пачки прокси. Я не спец именно по ботам для поисковых систем, но мне кажется подход то один.
Это не высоногруженное ни разу. Мы снимали 100K каждые сутки.
Серебрянной пули нет. Надо не сильно насиловать IPшники, иметь много IPшников, решать гугловые каптчи. Плюс ходить на гугл залогиненным (надо покупать гугловые учетки)
Сейчас гугловые каптчи стали динамическими с картинками, как тут использовать такие сервисы как Anticapcha — хз.
Ну и да, дешево это не получится.
Only those users with full accounts are able to leave comments. Log in, please.