diff --git a/README.md b/README.md index 7773bfa..b01d48f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Библиотека для работы с файлами во время парсинга -Во время работы часто приходится скачивать html-страницы, работать с json- и csv-файлами. Эта библиотека призвана облегчить написание кода для такого рода задач. +Во время парсинга часто приходится скачивать html-страницы, работать с json- и csv-файлами. Эта библиотека призвана облегчить написание кода для такого рода задач. Библиотека создавалась для удобства работы во время парсинга, но ничто не мешает использовать её просто для работы с json и csv. В библиотеке есть три класса для отдельных работ: Pars для получения данных из Интернета, JsonManager для работы с json и CsvManager для работы с csv. @@ -10,12 +10,14 @@ pip install ipars ``` +Рассмотрим каждый класс детальнее. + ## Работа с Pars -Класс Pars не принимает никаких данных для конструкторов +Класс Pars не принимает никаких данных для конструкторов. ```python -# Импортируем библиотеку +# Импортируем класс from ipars import Pars # Создаём объект класса p = Pars() @@ -27,7 +29,9 @@ p = Pars() 2. Функция **get_dynamic_page** с помощью библиотеки Selenium получает динамически обновляемую страницу. Это помогает, когда контент на странице подгружается динамически. Принимает url страницы, путь сохранения и closeWindow. По умолчанию браузер Selenium открывается в фоновом режиме, и работу браузера не видно, но если closeWindow указать как False, то будет виден процесс выполнения кода -3. Функция **returnBs4Object** возвращает объект beautifulsoup4. Принимает путь до html-страницы, содержимое которой преобразует в объект beautifulsoup, кодировку открытия файла (по умолчанию UTF-8) и тип парсера (по умолчанию lxml) +3. Функция **returnBs4Object** возвращает объект beautifulsoup4. Принимает путь до html-страницы, содержимое которой преобразует в объект beautifulsoup, кодировку открытия файла (по умолчанию UTF-8) и тип парсера (по умолчанию lxml). + +Пример скачивания html-страницы: ```py from ipars import Pars @@ -46,6 +50,21 @@ for image in allImage: print(image.get('src')) ``` +Пример скачивания фотографии: + +```py +from ipars import Pars +p = Pars() + +# Получаем картинку +p.get_static_page( + pathToSaveFile="./logo.png", + # Возможно в будущем, эта картинка переместится на другое место и пример перестанет работать 👉👈 + url="https://cdn.sstatic.net/Sites/stackoverflow/Img/icon-48.png?v=b7e36f88ff92", + writeMethod='wb' +) +``` + ## Работа с JsonManager JsonManager принимает принимает только один аргумент — кодировку в которой будут читаться файлы. По умолчанию это UTF-8 @@ -62,6 +81,8 @@ j = JsonManager() 2. Метод **dump** используется для записи данных в json-файл. Принимает путь до файла и данные для записи +3. Метод **pprint** используется для вывода значений переменных у которых большая вложеность. Например, если у Вас есть массив объектов, где в качестве значения ключа используется другой массив объектов + ```py from ipars import JsonManager j = JsonManager() @@ -69,12 +90,12 @@ j = JsonManager() j.dump('./data.json', [1, 2, 3, 4, 5, 6, 7]) # Получаем данные data = j.load('./data.json') -print(data) # [1, 2, 3, 4, 5, 6, 7] +j.pprint(data) # [1, 2, 3, 4, 5, 6, 7] ``` ## Работа с CsvManager -Класс CsvManager принимает три аргумента: символ переноса на новую строку "newline" (по умолчанию — это пустая строка), кодировку открываемых файлов "encoding" (по умолчанию cp1251) и разделитель который используется в csv файле "delimiter" (по умолчанию ";") +Класс CsvManager принимает три аргумента: символ переноса на новую строку "newline" (по умолчанию — это пустая строка), кодировку открываемых файлов "encoding" (по умолчанию UTF-8) и разделитель который используется в csv файле "delimiter" (по умолчанию ";") ```py @@ -91,6 +112,8 @@ c = CsvManager() 3. Метод **getRows** используется для получения списка строк в csv файле. Метод принимает путь до файла откуда будут получены строки +4. Метод **pprint** такой же как и у JsonManager + ```py from ipars import CsvManager @@ -104,8 +127,7 @@ writer = c.writerows('./data.csv', 'a', [ ]) rows = c.getRows('./data.csv') -for row in rows: - print(row) +c.pprint(rows) ``` ## License