• Почему непопулярна функция активации softsign?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Непопулярность идет от-того что это ломаная функция. И производная от неё в точке 0 не определена.
    Сейчас для обучения НС принято использовать метод обратного распространения ошибки, который использует производную для корректировки весов. Соответственно данный вид функции создает проблемы с вычислениями.
    Ответ написан
    1 комментарий
  • Существует ли способ защитить код написанный на Python?

    @javedimka
    Хочу сока
    Берёшь значит ситон. Выносишь значит критические части своей программы в отдельные модули. Потом значит ситоном преобразуешь свой питон код в .c, потом значит компилируешь в шаред обджект. И вот значит у тебя защищённый пайтон код.

    На linux как-то так:

    cython critical_business_rules.py -o critical_business_rules.c
    gcc -shared -pthread -fPIC -fwrapv -O2 -Wl,--strip-all -Wall -fno-strict-aliasing -I/usr/lib64/python3.6 -o critical_business_rules.so critical_business_rules.c


    Но флаги компайлеру конечно свои скармливай.
    Ответ написан
    5 комментариев
  • Существует ли способ защитить код написанный на Python?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    1) Запускать приложение у себя на сервере по платной подписке;
    2) Не использовать python;
    3) PyInstaller(код правда скорее всего не защитите, а вот проблем появится вагон и большая тележка).

    Короче, либо первый вариант, либо вариант - написать приложение на C/C++. Интерпретируемые ЯП не предназначены(несмотря на наличие костылей) для подобных дел.

    Сейчас мода пошла, накопировать много кода с разных уголков интернета, и добавить всё это в один файл. Это разумеется не работает - далее мамкины бизнесмены идут сюда с просьбой переписать код, потом приходят и спрашивают как защитить код)))
    Пример:
    5f8f59873cc8b122678802.png
    Похожий вопрос - Как защитить код?
    Ответ написан
    3 комментария
  • Как парсить с wildberries?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Начнём с того, что 500 шт. каждые 5 с - это 100 запросов в секунду. Прокси будут баниться очень быстро при подобном трафике.

    Далее, получение данных мегабыстро имеет смысл в автоматизированных системах торгов на фондовой бирже, а если это в телеграм человеку сливать, то он в любом случае будет реагировать намного медленнее этих 5 секунд. И зачем тогда так часто опрашивать? Если опрашивать с интервалом в 3 секунды, то товары будут приходить с опозданием в среднем 13 минут, максимум 25 минут, что для многих задач вполне приемлемо.

    Советую поговорить с заказчиком ещё раз на тему того, что именно ему нужно.
    Ответ написан
    15 комментариев
  • Какова разница между Scrapy и BeautifulSoup+Requests?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    BeautifulSoup - это просто html-парсер.
    Requests - это просто библиотека для осуществления HTTP-запросов.
    Scrapy - это фреймворк для скрэпинга/краулинга, который из коробки умеет в асинхронщину, перебор страниц, представление данных и много чего еще, при чем делает это быстро и эффективно.
    Так, что есть что - разобрались.
    Если нужно спарсить что-то один раз в небольшом объёме - requests + lxml (да, он лучше, чем bs как минимум тем, что умеет в xpath) более чем.
    Большой объём? aiohttp + lxml (но тут уже хоть немного нужно уметь в python).
    Нужно построить краулер (или много краулеров), который будет работать ежедневно и пробегать кучу страниц? Косплеить велосипедного инженера - это очень хорошо, но scrapy лучше.
    Ответ написан
    2 комментария
  • Как прокрутить страницу до конца и обработать полную страницу в BeautifulSoup?

    Witosser
    @Witosser
    студент IT ВУЗа, увлекаюсь веб-разработкой
    Делал аналогичную задачу использовал Selenium
    #!/usr/bin/env python3
    from urllib.request import Request, urlopen
    import re,csv
    
    import time
    from bs4 import BeautifulSoup
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    
    BASE_URL = 'https://kingfashion.com/ru/boys-riot-club/'
    
    
    
    def get_html(url):
        # req = Request(url, headers={'User-Agent' : 'Mozilla/5.0'})
        # response = urlopen(req).read()
        driver = webdriver.Firefox()
        driver.get(url)
        # driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        SCROLL_PAUSE_TIME = 3
    
        # Get scroll height
        last_height = driver.execute_script("return document.body.scrollHeight")
    
        while True:
            # Scroll down to bottom
            driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    
            # Wait to load page
            time.sleep(SCROLL_PAUSE_TIME)
    
            # Calculate new scroll height and compare with last scroll height
            new_height = driver.execute_script("return document.body.scrollHeight")
            if new_height == last_height:
                break
            last_height = new_height
        return driver.page_source
    
    def parse_url(html):
        soup = BeautifulSoup(html, 'html.parser')
        table = soup.find('div', {'class': 'category-products'})
        rows = table.find_all('div', {'class': 'product-info'})
    
        projects = []
        for row in rows:
            cols = row.find_all('h2')
            projects.append({
                'title': cols[0].text,
                'url': cols[0].a['href']
    
            })
        return projects
    
    def save_url(projects,path):
        with open(path,'w', newline='') as csvfile:
            writer = csv.writer(csvfile, delimiter=';')
            writer.writerow(('Название', 'URL'))
            writer.writerows(
                (project['title'],project['url']) for project in projects
            )
    
    
    
    def main():
        all_url = parse_url(get_html(BASE_URL))
        save_url(all_url, 'url.csv')
        # get_html(BASE_URL)
    if __name__ == '__main__':
        main()
    Ответ написан
    Комментировать
  • Как прокрутить страницу до конца и обработать полную страницу в BeautifulSoup?

    @deliro
    BeautifulSoup не загружает страницы.
    Скроллить обычными requests'ами или urlib'ами у вас не получится. Нужен именно браузер. То есть - Selenium.
    Ответ написан
    2 комментария