import openpyxl
from kinopoisk_parser import KinopoiskParser
import time
import os
"""Этот вариант скрипта не банит Кинопоиск при массовом заполнении, в отличии от варианта add_data_in_xlsx.py 
    с kinopoisk_parser.py.
    Запросы через requests или отдельный запуск selenium для каждого фильма банятся кинопоиском.
    В данном варианте с одной сессии Selenium заполняется вся таблица и бана не происходит.
     ____________________________________________________________________________________________________________
    | Name | Type | Season | genre | Year | Kinopoisk ID | IMDB | Kinopoisk | Country | Time | Director | Actors | 
     ------+------+--------+-------+------+--------------+------+-----------+---------+------+----------+--------
    |      |      |        |       |      |              |      |           |         |      |          |        |
"""

url = 'https://www.kinopoisk.ru/'
browser = KinopoiskParser()
browser.open_selenium()
wb = openpyxl.load_workbook(filename='C:/install/Films.xlsx')
ws = wb.active
for row in ws.iter_rows(min_row=2, max_row=ws.max_row):
    if row[1].value == 'Сериал': continue  # пока не трогаем сериалы
    if row[5].value: continue
    name_film = str(row[0].value).lower()
    year_film = str(row[4].value)
    search_form = browser.browser.find_element_by_name('kp_query')
    search_form.clear()
    search_form.send_keys(name_film)
    search_form.submit()
    time.sleep(6)
    WebDriverWait(browser.browser, 10).until(
        EC.presence_of_all_elements_located((By.CLASS_NAME, 'name')))
Beispiel #2
0
import os
"""Этот вариант скрипта не банит Кинопоиск при массовом заполнении, в отличии от варианта add_data_in_xlsx.py 
    с kinopoisk_parser.py.
    Запросы через requests или отдельный запуск selenium для каждого фильма банятся кинопоиском.
    В данном варианте с одной сессии Selenium заполняется вся таблица и бана не происходит.
     ____________________________________________________________________________________________________________
    | Name | Type | Season | genre | Year | Kinopoisk ID | IMDB | Kinopoisk | Country | Time | Director | Actors | 
     ------+------+--------+-------+------+--------------+------+-----------+---------+------+----------+--------
    |      |      |        |       |      |              |      |           |         |      |          |        |
"""

url = 'https://www.kinopoisk.ru/'
# browser = webdriver.Firefox()  # firefox_profile=r'C:\Users\video\AppData\Roaming\Mozilla\Firefox\Profiles\h3qugs8n.Kinopisk')
# browser.get(url)

browser = KinopoiskParser()
browser.open_selenium()

wb = openpyxl.load_workbook(filename='C:/install/Films.xlsx')
ws = wb.active
for row in ws.iter_rows(min_row=2, max_row=ws.max_row):
    # if row[1].value == 'Сериал': continue  # пока не трогаем сериалы
    # if not row[4].value: continue  # пока не трогаем первую плохо заполеннную часть таблицы, где нет Year
    if row[11].value: continue  # пропускаем уже заполеннные строки
    name_film = str(row[0].value).lower()
    year_film = str(row[4].value)
    id_film = str(row[5].value)
    if str(row[1].value) == 'Сериал':
        id_film = ws.cell(row=row[0].row, column=6).value
        url = f'https://www.kinopoisk.ru/film/{id_film}'
        browser.browser.get(url)
import sys
from kinopoisk_parser import KinopoiskParser
from proxy_manager import ProxyManager


if __name__ == "__main__":
    if len(sys.argv) > 1:
        user_id = sys.argv[1]
    else:
        raise Exception("Enter you kinopoisk user id")

    new_proxy_manager = ProxyManager()
    kinopoisk_parser = KinopoiskParser(user_id)

    kinopoisk_parser.calculate_wasted_time(new_proxy_manager)

    time_in_minute = int(kinopoisk_parser.get_wasted_time())

    print(f'You wasted {round(time_in_minute, 2)} minutes or {round(time_in_minute / 60, 2)} hours or {round(time_in_minute / 60 / 24, 2)} day')
Beispiel #4
0
year_film = input('Введите год: ')
film = KinopoiskParser(name=name_film, year=year_film)
film.find_film_id()
data = film.get_from_kinopoisk_with_id()"""
# data = KinopoiskParser().get_from_file('C:/Users/Kenobi/Desktop/Нокдаун.html')
# print(data)

wb = openpyxl.load_workbook(filename='C:/install/Films.xlsx')
ws = wb.active
for row in ws.iter_rows(min_row=2, max_row=412):  # max_row=ws.max_row):
    if row[1].value == 'Сериал': continue  # пока не трогаем сериалы
    if not row[4].value:
        continue  # пока не трогаем первую плохо заполеннную часть таблицы
    name_film = row[0].value.lower()
    year_film = str(row[4].value)
    film = KinopoiskParser(name=name_film, year=year_film)
    id = film.find_film_id()
    if not id:
        time.sleep(10)
        continue
    data = film.get_from_kinopoisk_with_id()
    if (row[0].value == data['film_name'].replace(
            ':', '.')) and (row[4].value == int(data['year'])):
        try:
            row[3].value = data["genre"]
        except KeyError:
            print('Нет значения жанр')
        try:
            row[5].value = data["id_kinopoisk"]
        except KeyError:
            print('Нет значения id_kinopoisk')
Beispiel #5
0
    if os.path.exists(path):
        os.chdir(path)
        return True
    else:
        print(f'Пути {path} не существует')
        return False


if __name__ == "__main__":
    arc_disk = input('Введите букву диска с архивом: ').upper() + ':'
    chief_disk = input('Введите букву диска для просмотра: ').upper() + ':'
    serv_disk = input(
        'Введите букву диска для записи на видеосервер: ').upper() + ':'
    work_paths = (os.path.join(arc_disk,
                               r'\Convert'), os.path.join(arc_disk, r'\New'))
    with KinopoiskParser() as browser:
        browser.open_selenium()
        for work_path in work_paths:  # проверяем существуют ли указанные рабочие пути
            print("=" * 150)
            if path_existence_check(work_path):
                for adress, dirs, files in os.walk(work_path):
                    if adress == work_path:  # если находимся в корне рабочего пути, то обрабатываем все фильмы
                        for file in files:
                            film = Film(file, adress, serv_disk, chief_disk)
                            if film.copy_to_servdisk():
                                browser.write_data(
                                )  # находим и дописываем данные с Кинопоиска
                                with DataBase(CONNECT_FILE
                                              ) as base:  # запись в Postgresql
                                    base.query()
                            film.copy_to_chiefdisk()