Skip to main content

Библиотека для работы с файлами во время парсинга

Project description

Библиотека для работы с файлами во время парсинга

Во время работы часто приходится скачивать html-страницы, работать с json- и csv-файлами. Эта библиотека призвана облегчить написание кода для такого рода задач.

В библиотеке есть три класса для отдельных работ: Pars для получения данных из Интернета, JsonManager для работы с json и CsvManager для работы с csv.

Установить библиотеку:

pip install ipars

Работа с Pars

Класс Pars не принимает никаких данных для конструкторов

# Импортируем библиотеку
from ipars import Pars
# Создаём объект класса
p = Pars()

Коротко о методах

  1. Функция get_static_page принимает url страницы, путь, по которому сохранится страница, метод записи и заголовки запроса. Метод записи «wb» используется для сохранения картинок, по умолчанию writeMethod установлен как «w», что используется для html-страниц. Если заголовки запросов не указаны, то будут использоваться встроенные, но при желании можно указать свои. Функция возвращает статус ответа сайта, что должно использоваться для введения проверок

  2. Функция get_dynamic_page с помощью библиотеки Selenium получает динамически обновляемую страницу. Это помогает, когда контент на странице подгружается динамически. Принимает url страницы, путь сохранения и closeWindow. По умолчанию браузер Selenium открывается в фоновом режиме, и работу браузера не видно, но если closeWindow указать как False, то будет виден процесс выполнения кода

  3. Функция returnBs4Object возвращает объект beautifulsoup4. Принимает путь до html-страницы, содержимое которой преобразует в объект beautifulsoup, кодировку открытия файла (по умолчанию UTF-8) и тип парсера (по умолчанию lxml)

from ipars import Pars
p = Pars()
# Заголовки для запроса
headers ={
    "Accept": "*/*",
    "User-Agent": "Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1"
    }
p.get_static_page('./index.html', 'https://google.com', headers=headers)
# Получаем объект beautifulsoup из полученной страницы
soup = p.returnBs4Object('./index.html')
# Используем методы beautifulsoup
allImage = soup.find_all('img')
for image in allImage:
    print(image.get('src'))

Работа с JsonManager

JsonManager принимает принимает только один аргумент — кодировку в которой будут читаться файлы. По умолчанию это UTF-8

from ipars import JsonManager

j = JsonManager()

Коротко о методах

  1. Метод load используется для получения данных из json-файла по указанному пути

  2. Метод dump используется для записи данных в json-файл. Принимает путь до файла и данные для записи

from ipars import JsonManager
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]

Работа с CsvManager

Класс CsvManager принимает три аргумента: символ переноса на новую строку "newline" (по умолчанию — это пустая строка), кодировку открываемых файлов "encoding" (по умолчанию cp1251) и разделитель который используется в csv файле "delimiter" (по умолчанию ";")

from ipars import CsvManager

c = CsvManager()

Коротко о методах

  1. Метод writerow записывает строку с csv файл. Метод принимает путь до csv файла, метод записи и список данных которые будут записанн в строку файла

  2. Метод writerows принимает теже самые аргументы что и writerow, только row должен быть двойным списком с данными для записи. Разница между этими методами в том что writerow записывает одну, а writerows столько сколько есть в двойном списке

  3. Метод getRows используется для получения списка строк в csv файле. Метод принимает путь до файла откуда будут получены строки

from ipars import CsvManager

c = CsvManager()
writer = c.writerow('./data.csv', 'w', ['Количество', 'Цена', 'Итог'])

writer = c.writerows('./data.csv', 'a', [
    ["5", "5", "25"],
    ["6", "6", "36"],
    ["7", "7", "49"],
])

rows = c.getRows('./data.csv')
for row in rows:
    print(row)

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ipars-3.1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ipars-3.1.0-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file ipars-3.1.0.tar.gz.

File metadata

  • Download URL: ipars-3.1.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.4

File hashes

Hashes for ipars-3.1.0.tar.gz
Algorithm Hash digest
SHA256 ad99965be6b28befd604a20ed42fbcde135f52148568a6c219b5150d49c3b02f
MD5 cd707f3584643c67731f0695f20b7956
BLAKE2b-256 51dae51d2462f6635aabed6cdc646d5569421d5888810aa0d075822f2d5fc9be

See more details on using hashes here.

File details

Details for the file ipars-3.1.0-py3-none-any.whl.

File metadata

  • Download URL: ipars-3.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.4

File hashes

Hashes for ipars-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cb6fcf85a2884e6574bb54d44b230ddd5ed23cbf25b5a07dbf9c1e1e2792196e
MD5 4746cb838b5cda3ba76e9567e5ad5e48
BLAKE2b-256 25dc39a70848092939f58ad6f85a4faee5d3f0369988fe390750e4fb1642f6c2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page