• Как вытащить первый span или тег с названием канала?

    @Konf
    Редактирую ответы на 2 + 2 по 4 раза
    Как мне получить только первый span?

    Достаточно выключить флаг g у регулярного выражения

    609b91a9010a8026569384.png
    609b91b5840b3532795970.png
    Ответ написан
    2 комментария
  • Почему показывается неверная частота памяти?

    Slayer_nn
    @Slayer_nn
    Гугол, памаги!
    Все правильно
    Одноканал 1333
    Двуканал 2667

    Если не знаете про разгон памяти
    Лучше не лезть
    Ответ написан
    2 комментария
  • Как грамотно сделать (парсинг)?

    LazyTalent
    @LazyTalent
    Data Engineer, Freelancer
    Я бы это в ООП переписал, как-то так (Обязательно добавить обработку ошибок!!!):
    class Alrosa:
        def __init__(self, page_source: str):
            self.html = BeautifulSoup(page_source, 'html.parser')
    
        @property
        def citylist(self) -> List[str]:
            return self._get_elements('.city')
    
        @property
        def pricelist(self) -> List[str]:
            return self._get_elements('.price')
    
        @property
        def linkdeplist(self) -> List[str]:
            elems = self._get_elements('.button a')
            return [i.get('href') for i in elems]
    
        def _get_elements(self, selector: str) -> List[str]:
            return [elem for elem in self.html.selector(selector)]
    
        def to_string(self, i: int) -> str:
            return f'Маршрут: {self.citylist[i]}. Цена: {pricelist[i]}. Ссылка-{linkdeplist[i]}'
        
        
    def get(url: str, headers: Dict[str, str]) -> requests.Response:
        return requests.get(url, headers=headers)
    
    r = get(url, headers)
    alrosa = Alrosa(r.content)
    for i in range(len(alrosa.citylist)):
        print(alrosa.to_string(i))
    Ответ написан
    5 комментариев
  • Почему не отправляется requests.post на сайт (ssl)?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Попробуйте добавить это:
    import urllib3
    urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
    Ответ написан
    2 комментария
  • Почему не отправляется requests.post на сайт (ssl)?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Сайт проверяет куки. Создай сессию, а затем делай нужные тебе запросы:
    import requests
    
    session = requests.Session()
    session.headers.update({
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
    })
    session.get('https://www.pobeda.aero/information/booking/search_cheap_tickets/', verify=False)
    
    data = {'Culture': 'ru-RU', 'Currency': 'RUB', 'Origin': 'VKO', 'RequestType': 'MoreOffersHome'}
    response = session.post('https://www.pobeda.aero/umbraco/api/CustomTravelOffersApi/GetCustomTravelOffers', json=data, verify=False)
    
    response.json()

    oupt
    [{'departure': 'Москва',
      'arrivals': [{'image': '//static.pobeda.aero/media/1057/cheby.jpg',
        'name': 'Чебоксары',
        'currency': '₽',
        'price': '999',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=CSY&departure1=2020-10-13&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 0,
        'isHighlighted': False,
        'customTitle': 'Чебоксары'},
       {'image': '//static.pobeda.aero/media/1002/vladikavkaz1.jpg',
        'name': 'Владикавказ',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=OGZ&departure1=2020-09-09&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 9,
        'isHighlighted': False,
        'customTitle': 'Владикавказ'},
       {'image': '//static.pobeda.aero/media/1006/izhevsk1.jpg',
        'name': 'Ижевск',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=IJK&departure1=2020-09-14&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 19,
        'isHighlighted': False,
        'customTitle': 'Ижевск'},
       {'image': '//static.pobeda.aero/media/1007/kazan1.jpg',
        'name': 'Казань',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=KZN&departure1=2020-09-08&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 10,
        'isHighlighted': False,
        'customTitle': 'Казань'},
       {'image': '//static.pobeda.aero/media/1008/kaliningrad1.jpg',
        'name': 'Калининград',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=KGD&departure1=2020-08-24&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 18,
        'isHighlighted': False,
        'customTitle': 'Калининград'},
       {'image': '//static.pobeda.aero/media/1061/kirov.jpg',
        'name': 'Киров',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=KVX&departure1=2020-10-05&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 16,
        'isHighlighted': False,
        'customTitle': 'Киров'},
       {'image': '//static.pobeda.aero/media/1010/krasnodar1.jpg',
        'name': 'Краснодар',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=KRR&departure1=2020-08-24&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 15,
        'isHighlighted': False,
        'customTitle': 'Краснодар'},
       {'image': '//static.pobeda.aero/media/1001/kurgan1.jpg',
        'name': 'Курган',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=KRO&departure1=2020-10-05&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 17,
        'isHighlighted': False,
        'customTitle': 'Курган'},
       {'image': '//static.pobeda.aero/media/1050/makhachkala.jpg',
        'name': 'Махачкала',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=MCX&departure1=2020-08-25&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 14,
        'isHighlighted': False,
        'customTitle': 'Махачкала'},
       {'image': '//static.pobeda.aero/media/1011/minvody1.jpg',
        'name': 'Минеральные Воды',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=MRV&departure1=2020-10-07&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 4,
        'isHighlighted': False,
        'customTitle': 'Минеральные Воды'},
       {'image': '//static.pobeda.aero/media/1012/murmansk1.jpg',
        'name': 'Мурманск',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=MMK&departure1=2020-09-19&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 13,
        'isHighlighted': False,
        'customTitle': 'Мурманск'},
       {'image': '//static.pobeda.aero/media/1053/nab_chelny.jpg',
        'name': 'Набережные Челны',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=NBC&departure1=2020-09-18&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 5,
        'isHighlighted': False,
        'customTitle': 'Набережные Челны'},
       {'image': '//static.pobeda.aero/media/1064/nazran.jpg',
        'name': 'Назрань (Магас)',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=IGT&departure1=2020-09-26&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 11,
        'isHighlighted': False,
        'customTitle': 'Назрань (Магас)'},
       {'image': '//static.pobeda.aero/media/1039/perm.jpg',
        'name': 'Пермь',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=PEE&departure1=2020-10-08&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 8,
        'isHighlighted': False,
        'customTitle': 'Пермь'},
       {'image': '//static.pobeda.aero/media/1013/petrozavodsk.jpg',
        'name': 'Петрозаводск',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=PES&departure1=2020-09-21&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 12,
        'isHighlighted': False,
        'customTitle': 'Петрозаводск'},
       {'image': '//static.pobeda.aero/media/1025/stavropol.jpg',
        'name': 'Ставрополь',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=STW&departure1=2020-09-03&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 7,
        'isHighlighted': False,
        'customTitle': 'Ставрополь'},
       {'image': '//static.pobeda.aero/media/1024/ufa.jpg',
        'name': 'Уфа',
        'currency': '₽',
        'price': '1499',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=UFA&departure1=2020-09-03&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 6,
        'isHighlighted': False,
        'customTitle': 'Уфа'},
       {'image': '//static.pobeda.aero/media/1014/anapa.png',
        'name': 'Анапа',
        'currency': '₽',
        'price': '1799',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=AAQ&departure1=2020-08-26&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 20,
        'isHighlighted': False,
        'customTitle': 'Анапа'},
       {'image': '//static.pobeda.aero/media/1013/nalchik1a.jpg',
        'name': 'Нальчик',
        'currency': '₽',
        'price': '1799',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=NAL&departure1=2020-09-17&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 21,
        'isHighlighted': False,
        'customTitle': 'Нальчик'},
       {'image': '//static.pobeda.aero/media/1016/sochi1.jpg',
        'name': 'Сочи',
        'currency': '₽',
        'price': '1800',
        'link': {'url': 'ru/booking/select/?origin1=VKO&destination1=AER&departure1=2020-08-24&adt1=1&tng1=0&chd1=0&inf1=0&currency=RUB',
         'target': '',
         'newTab': False},
        'umbracoSort': 22,
        'isHighlighted': False,
        'customTitle': 'Сочи'}]}]
    Ответ написан
    2 комментария
  • Как строку первратить в дату?

    NeiroNx
    @NeiroNx
    Программист
    from datetime import datetime
    datetime.strptime("%Y-%m-%d",'2020-09-18').strftime("%d.%m.%Y")
    Ответ написан
    Комментировать
  • Как строку первратить в дату?

    kgb_zor
    @kgb_zor
    I need your traceback.
    from datetime import datetime
    
    datetime.strptime("2020-09-18", "%Y-%m-%d").strftime("%d.%m.%Y")
    Ответ написан
    Комментировать
  • Как правильно написать регулярку?

    @IS-Builder
    ~ PHP-8 & REGEXP - This is a really powerful kit ~
    Александр Андропов тут не нужны регулярки:
    $json = '{"v": 50, "vd": 5},
     {"v": 51, "vd": 1},
     {"v": 54, "vd": 3},
     {"v": 57, "vd": 3},
     {"v": 60, "vd": 3},
     {"v": 61, "vd": 1},
     {"v": 62, "vd": 1},
     {"v": 63, "vd": 1},
     {"v": 63, "vd": 0}';
    
    $array = array_map(function($a){ return $a['v']; }, json_decode("[$json]", true));
    
    var_dump($array);
    Ответ написан
    Комментировать
  • Как спарсить информацию за скрывающимся элементом?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Найдите в исходном файле script с классом config-view.
    Внутри него JSON со всеми данными.
    Вам нужны элементы ['covidData']['items'].
    Ответ написан
    4 комментария
  • Как показывать другой контент на мобильном устройстве?

    обернуть слово
    КАРТА
    в тег span и с помощью медиазапросов скрывать на мобильных разрешениях экрана
    Ответ написан
    Комментировать
  • Как правильно составить запрос SQL?

    @AndryG
    SELECT * FROM `brands` WHERE `district` = :district or :district = 'Не выбрано';
    Ответ написан
    Комментировать
  • Как правильно составить запрос SQL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Хоть и не очень элегантно, но благодаря удобству ПДО всё же и не очень громоздко,
    $params = [];
    $sql = "SELECT * FROM `brands` ";
    if (!empty($_GET['district'])) {
        $sql .= "WHERE `district` = ?";
        $params[] = $_GET['district'];
    }
    $stmt = $pdo->prepare($sql);
    $stmt->execute($params);


    Таким же образом можно добавлять и другие условия.
    Ответ написан
    Комментировать
  • Как правильно составить запрос для диапазона чисел?

    DimaLondon
    @DimaLondon
    SELECT * 
    FROM `my_table` 
    WHERE `priceFrom` < 150000 
    OR (`priceFrom` > 150000 AND `priceFrom` <= 180000);
    Ответ написан
    3 комментария
  • Как правильно составить запрос для диапазона чисел?

    shabelski89
    @shabelski89
    engineer
    Все очень плохо... Записи меньше 150000 и от 150000 до 180000 это одно условие, меньше 180000. Если вы конечно не хотели игнорировать записи = 150000.
    Select * from table where priceFrom < 180000;
    Select * from table where priceForm < 180000 and priceForm != 150000;
    Ответ написан
    3 комментария
  • Как правильно получить прямую ссылку на видео YouTube?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Как вам ответили в каментах простым образом скачать видео файлом с ютуба у вас не получится. Ютубу это просто не выгодно и он всячески этому препятствует.
    Тут идёт гонка вооружений: гугл придумывает средства противодействия, а энтузиасты обходные пути.

    По постановке вопроса было не понятно что вам действительно надо и что за прямую ссылку на видео вам требовалось получить.
    Если речь идёт о скачивании видео с ютуба, то есть замечательная питоновская утилита youtube-dl.
    Её удобно использовать с помощью докера: https://hub.docker.com/r/wernight/youtube-dl
    При этом отпадают проблемы с обновлением и зависимостями.
    Я использую её, чтобы выкачивать интересное с ютуба для "посмотреть позже" пока не удалили.
    На дешевой VDS крутится бот, который слушает от меня ютубовские урлы, а отвечает ссылками на скачивание файла, когда закачает его сам. Удобненько. Ботом не поделюсь пока.
    Ответ написан
    4 комментария
  • Почему не работает тег button type submit?

    @KingstonKMS
    Для передачи данных POST каждый инпут должен иметь атрибут name, по значению которого он определяется в массиве $_POST
    Ответ написан
    4 комментария
  • Как правильно использовать Inputmask jQuery?

    Ответ написан
    Комментировать
  • Как подставить ID записи в Модальное окно?

    Serhioromano
    @Serhioromano
    Web Developer
    <a class="delobj" href="javascript:void(0)" data-obj="13220">
        <img src="/img/icon_delete_object.png">
    </a>
    function($){
         $('.delobj').on('click', function(){
              if(confirm('Sure?')) {
                   window.location.href = 'handlers/delete_object.php?id_obj=' + $(this).attr('data-obj')
              }
         })
    }(jQuery)


    Код не дебажил нбрал прям тут. Могут быть ошибки или опечатки, он идея понятно должна быть.
    Ответ написан
    Комментировать
  • Как правильно составить запрос?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    WHERE в каждый запрос из UNION
    ( SELECT name,phone,address FROM `psn`
    WHERE `name` = '$zapros' OR `phone` LIKE '%$zapros%' OR `address` LIKE '%$zapros%' )
    UNION
    ( SELECT name,phone,address FROM `office`
    WHERE `name` = '$zapros' OR `phone` LIKE '%$zapros%' OR `address` LIKE '%$zapros%' )


    через подзапрос
    SELECT * FROM (
        SELECT name,phone,address FROM `psn`
        UNION
        SELECT name,phone,address FROM `office`
    ) AS t
    WHERE t.`name` = '$zapros' OR t.`phone` LIKE '%$zapros%' OR t.`address` LIKE '%$zapros%'
    Ответ написан
    1 комментарий