CoderCastrov logo
CoderCastrov
Парсер

Парсинг с помощью Python

Парсинг с помощью Python
просмотров
3 мин чтение
#Парсер
Table Of Content

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

    Что такое парсинг веб-страниц?

    Парсинг веб-страниц - это извлечение большого объема данных с веб-сайтов с помощью автоматизации. Данные на веб-сайтах являются неструктурированными. Парсинг веб-страниц помогает извлекать и сохранять эти данные в требуемом формате. Существуют разные способы извлечения данных с веб-сайтов, например, с помощью API или написания собственного кода. Давайте посмотрим, как это можно сделать с помощью Python.

    Почему Python для парсинга веб-страниц?

    • Python легок в понимании: Чтение кода на Python похоже на чтение выражения на английском языке
    • Прост в использовании: В коде нет точек с запятой ";" или фигурных скобок ""
    • Впечатляющая коллекция библиотек: Его библиотеки, такие как Numpy, Pandas и т. д., делают парсинг веб-страниц намного проще и быстрее.

    Как парсить данные с помощью Python?

    Давайте рассмотрим пример парсинга вакансий с сайта dice. Используемые библиотеки: Selenium: Selenium используется для автоматизации веб-браузеров. Pandas: Pandas используется для извлечения и сохранения данных в требуемом формате.

    Предварительные требования: Python2.x или 3.x с установленными библиотеками selenium и pandas, Google Chrome, операционная система Mac или Windows.

    **Шаг 1: Мы хотим извлечь название вакансии, название компании, местоположение с веб-сайта dice. URL-адрес: https://www.dice.com/jobs?q=selenium&countryCode=US&radius=30&radiusUnit=mi&page=5&pageSize=100&filters.postedDate=ONE&filters.employmentType=FULLTIME&language=en&eid=S2Q_,6Q_0

    Шаг 2: Изучение страницы: Мы должны изучить элементы для извлечения данных, для этого щелкните правой кнопкой мыши и нажмите "Исследовать". Откроется "Панель инструментов разработчика браузера".

    Шаг 3: Выберите элемент для исследования. Давайте извлечем название вакансии, название компании и местоположение, которые отображаются в теге "div". Мы напишем xpath для каждой из этих деталей соответственно.

    Шаг 4: Напишите код. Для этого создадим файл Python в новом проекте с использованием PyCharm (среда разработки Python).

    Теперь давайте напишем наш код в этом файлеfrom selenium import webdriverimport pandas as pdimport numpy as np

    Чтобы использовать браузер Chrome, нам нужно настроить путь для chromedriverdriver = webdriver.Chrome(“/*******/chromedriver/chromedriver”)

    Чтобы открыть URL, используйте:driver.get(“https://www.dice.com/jobs?q=selenium&countryCode=US&radius=30&radiusUnit=mi&page=5&pageSize=100&filters.postedDate=ONE&filters.employmentType=FULLTIME&language=en&eid=S2Q_,6Q_0”)

    Как мы видели ранее, каждый из данных, которые мы хотим извлечь, размещены в соответствующих тегах "div", я теперь напишу xpath для каждого из этих элементов (название вакансии, местоположение, название компании) и также использую "text" для этих xpath, который даст мне строковые значения этих элементов. Пожалуйста, обратитесь к коду ниже

    #xpath** для названия вакансииd1=driver.find_elements_by_xpath(“//*[@class=”card-title-link bold”]”).getitem(int(i)).text**

    #xpath** для названия компаниид2=driver.find_elements_by_xpath(//*[@class=“card-company”]).text**

    #xpath** для местоположенияd3=driver.find_elements_by_xpath(//*[@id=“searchResultLocation”]).text**

    Примечание: Здесь мы использовали find_elements, так как в dice есть сотни вакансий, и мы можем использовать цикл for для извлечения всех вакансий.

    После извлечения данных их нужно сохранить в структурированном формате. Для этого мы использовали словари Python.

    Словари: Словари представляют собой набор данных, которые хранятся в парах ключ:значение. Они упорядочены (начиная с Python 3.7), изменяемы и не позволяют дубликатов. Они записываются в фигурных скобках. Теперь мы будем использовать словари с ключами в качестве названий столбцов, а их соответствующие значения будут переменными выше (d1, d2, d3).

    t=0thisdict[t]={ “Название вакансии”:d1, “Название компании”:d2, “Местоположение”:d3}

    Теперь давайте используем этот словарь в объекте данных Pandas.

    Pandas - популярный пакет Python, его структуры данных делают манипуляции и анализ данных легкими. Объекты данных - одна из этих структур. Объекты данных определяются как двумерные именованные структуры данных с рядами и столбцами, то есть данные хранятся в табличной форме. Мы можем указать названия столбцов для объектов данных.df = pd.DataFrame.from_dict(thisdict,orient=“index”,columns=[‘Название вакансии’, ‘Название компании’, ‘Местоположение’])

    Затем мы можем отобразить этот объект данных в файле csv.df.to_csv(“Output.csv”, index=False)

    Это создает файл Output.csv со списком всех вакансий.

    В заключение, парсинг с помощью Python является быстрым и эффективным. Синтаксис Python делает его более понятным для программиста, что позволяет быстро извлекать необходимые данные. Извлеченные данные можно отображать не только в файле csv, но и в любом другом формате, например, в файле Excel, XML.