22.2K ·GitHub
Что это такое?
Бесплатная серия уроков на китайском языке, которая учит парсингу веб-страниц на Python с нуля: более 30 пронумерованных уроков и руководства по mitmproxy — от первого перехвата трафика до распределённого парсинга, с исходным кодом всех учебных проектов.
Это инструмент, который я устанавливаю, или курс, который читаю?
Это курс, а не инструмент: в README собраны ссылки на уроки, опубликованные в виде статей, а в репозитории лежит соответствующий исходный код. Устанавливать ничего не нужно — вы просто читаете и пишете код параллельно.
Как проходить курс — есть ли определённый порядок?
Читайте сверху вниз: сначала идёт раздел предоснов и перехват трафика, затем уроки с номерами 00–30, которые опираются друг на друга, а у каждой практической работы есть ссылка на её исходный код.
Что должно быть установлено, чтобы идти по курсу?
Для начала — Python 3. Дальше уроки подключают Chrome, Fiddler или mitmproxy для перехвата трафика, selenium для автоматизации браузера, Appium и телефон для парсинга приложений, а также MySQL или MongoDB для хранения данных.
Серия завершена или ещё пополняется?
Она заканчивается пометкой «продолжение следует» (未完待续): нумерация перескакивает с урока 28 на 30, и финала нет. Репозиторий датируется 2019 годом, так что некоторые целевые сайты и инструменты уже устарели.
Я никогда не программировал — могу начать с этого?
Да — первый урок рассчитан на людей, которые вообще не умеют программировать, а дальше курс доходит до реверс-инжиниринга JavaScript и распределённого парсинга. Дружелюбный вход для новичков, а к концу — продвинутый уровень.
Как в курсе обходят защиту от парсинга — капчи, блокировку по IP, авторизацию?
Отдельными уроками: подмена заголовков запросов, пулы прокси с ротацией IP, три способа попасть на сайты с обязательным входом, распознавание капч с картинками, автовзлом слайдер-капчи Bilibili, а также обход шифрования шрифтов через CSS и обфускации JavaScript.
Он умеет парсить мобильные приложения, а не только сайты?
Да — в нём есть перехват трафика телефона через Fiddler, мониторинг трафика вашего телефона через mitmproxy и уроки по Appium, где телефоном управляют, чтобы спарсить «Моменты» WeChat, — вплоть до распаковки низкоуровневого шифрования приложения под Android.
Есть ли готовые примеры проектов с кодом, которые можно изучать?
Десять, со ссылками на исходный код: топ-500 книг Dangdang, топ-250 фильмов Douban, парсинг Bilibili, решение слайдер-капчи, «Моменты» WeChat через Appium, анекдоты с Qiushibaike в MongoDB, 200 тысяч эмодзи-стикеров и статьи WeChat, сохранённые в PDF.
What are similar projects?
python-spider, Python, awesome-python-login-model, examples-of-web-crawlers, botasaurus, Python-100-Days, TinyWebServer, undetected-chromedriver
Which topics is it in?
mobile-automation, selenium, mitm, captcha, distributed, multithreading, crawler, python3, concurrency, mongodb, wechat, ocr
