Reptile Advanced Qunar Hotel (дома и за границей)

база данных Python рептилия pandas

После того, как я опубликовал статью о сканировании Qunar Free Travel (которое может собрать не менее 100 000 единиц данных), читатель в фоновом режиме спросил меня, как сканировать данные Qunar Hotel. В то время я просто смотрел на это и думал, что это не так уж сложно. Просто рассказал ему идею. Потому что в то время сайт, просканировавший бесплатную строку, выбирался с мобильного терминала. Чтобы позволить читателям получить больше знаний, мы выбрали компьютерную сторону, где сегодня ползать. По сути, идея сканера та же, это не что иное, как сначала получить информацию о веб-странице, а затем проанализировать ее. После анализа извлеките нужные данные. Если вы хотите продолжить анализ данных. Также требуется ряд операций, таких как очистка данных и моделирование. Сегодня автор предлагает вам сбор информации об отелях, а также очистку и анализ данных.


1. Подготовка

Библиотеки Python, в основном задействованные в этом случае, — это Selenium, библиотека pymongo и библиотека синтаксического анализа pyquery. Очистите библиотеку pandas и библиотеку matplotlib, установите браузер Chrome и настройте ChromeDriver.


2. Анализ страницы

Сначала посетите веб-сайт Qunar: «https://www.qunar.com/», а затем выберите столбец отеля. Мы видим, что текущая ссылка: «http://hotel.qunar.com/». Это доменное имя, которое мы хотим посетить. Как показано ниже.

Мы нажимаем на пункт назначения страницы, чтобы ввести город, а затем нажимаем поиск, чтобы отобразить список отелей, то есть мы можем использовать Selenium для управления браузером, чтобы ввести название города, а затем нажмите. Заходим на страницу отеля. Как показано ниже.

Если есть больше потребностей бизнеса, мы можем выбрать тип отеля в меню и реализовать ту же идею. Здесь мы по умолчанию используем столбец «Поиск отеля». И выберите фильтрацию отелей по рейтингу. Случайным образом выбираем название отеля и правой кнопкой мыши открываем инструменты разработчика. Как показано ниже.

После анализа видно, что контент каждого отеля находится в id "jxContentPanel", а подробную информацию о каждом отеле можно увидеть в классе "b_result_box js_list_block" под ним. Как показано ниже.

Мы можем использовать библиотеку синтаксического анализа pyquery для анализа веб-страницы, чтобы получить необходимую нам информацию, и синтаксический анализ веб-страницы завершен. Ниже мы используем код для реализации всего процесса сканирования.


3. Практические упражнения

3.1 Получить список городов назначения

Здесь мы можем использовать список городов назначения, которые мы получили, когда мы получили данные о бесплатных поездках ранее, следующим образом:

3.2 Получить страницу сведений о странице Qunar

У нас уже есть список городов назначения, поэтому при посещении URL-адреса Qunar просто введите полученный город для поиска. Затем вы можете получить страницу отеля. И получить несколько страниц отелей. Так же реализуйте метод перелистывания страниц. Реализация выглядит следующим образом:

3.3 Разбор списка отелей

Мы получили информацию о странице со списком отелей, а затем используем библиотеку синтаксического анализа pyquery для ее анализа, после чего мы можем получить нужные данные. Реализация выглядит следующим образом:


3.4 Сохранить в базу данных и CSV-файл


3.5 Запуск кода



3.6 Просмотр результатов


Результат базы данных MongoDB:


CSV-файл:


3.7 Очистка данных

С использованием библиотеки pandas для очистки данных реализация выглядит следующим образом:

Результат выглядит следующим образом:

3.8 Код проекта

https://github.com/NGUWQ/Python3Spider/tree/master/dataanalysis



4. Вывод

Основная функция этого проекта — сканирование отелей Qunar. Если вы хотите сканировать другие предприятия Qunar, вы можете расширить эту основу до полного сканирования сайта Qunar. Идея та же.


Друзья, которые интересуются поисковыми роботами, анализом данных и алгоритмами, могут добавить общедоступную учетную запись WeChat TWcoding, и давайте вместе поиграем в Python.


If it works for you.Please,star.


самопомощник