• Как вытащить все ссылки на загрузку файлов с сайта?

    datka
    @datka
    1 ) Скачиваешь и устанавливаешь Python. ( ставишь галочку для PATH )https://www.python.org/downloads/
    2) Win+R -> pip install requests > OK
    3) Win+R -> pip install bs4 > OK
    4) Создаешь папку на рабочем столе.
    5) Создаешь два фаила в папке.
    5.1) Первый фаил например get_links.py , туда вставляешь этот
    КОД
    import requests
    from bs4 import BeautifulSoup
    
    main_url = 'https://uristhome.ru'
    docs_url = "https://uristhome.ru/document"
    headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"}
    
    down_link = []
    
    r = requests.get(docs_url, headers=headers)
    soup = BeautifulSoup(r.content, 'html.parser')
    for doc in soup.find("ul",{"class": "y_articles-document-list"}):
        down_link.append(main_url+doc.find("a").attrs['href'])
        
    with open('download_link.txt', 'a') as nf:
        nf.writelines('\n'.join(docs))
    потом сохраняешь фаил.
    5.2) Создаешь второй фаил например download_links.py туда вставляешь уже этот
    КОД
    import requests
    from bs4 import BeautifulSoup
    
    headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"}
    down_link = open('download_links.txt', 'r')
    
    docs = []
    counter = 0 
    for links in down_link.readlines():
        try:
            r = requests.get(links, headers=headers)
            soup = BeautifulSoup(r.content, 'html.parser')
            x = soup.find("div",{"class": "filefield-file"}).find("a").attrs['href']
            counter += 1
            print(counter)
            print(x)
            docs.append(x)
        except:
            pass
    
    with open('documents_link.txt', 'a') as nf:
        nf.writelines('\n'.join(docs))


    Как это работает:
    1) открываешь get_links.py в папке создается текстовой файл с ссылками на документы
    2) отрываешь download_links.py он будет обрабатывать тот текстовой файл. по окончанию создаст еще 1 текстовой файл documents_link.txt с ссылками на документы.
    Ответ написан
    Комментировать
  • Как реализовать автоматическую генерацию пути сохранения файла в Django?

    un1t
    @un1t
    В аргумент upload_to можно передавать функцию. Если достаточно время, то можно так:
    upload = models.FileField(upload_to='uploads/%Y/%m/%d/')
    Ответ написан
    5 комментариев
  • Как организовать хранение файлов пользователей в Django?

    @ilya_chch
    в settings.py добавьте указание на расположение медиа
    MEDIA_URL = '/media/' #например
    MEDIA_ROOT = '/srv/files/media' #например


    media_url - часть урла, по которому будут находиться картинки, media_root - место на сервере, где nginx будет их искать.

    в модели:

    class ModelClass(models.Model):
        <поле> = models.ImageField(upload_to=rename_image, blank=True, verbose_name='...')
    
    def rename_image(instance, filename):
        image_name = md5(str(time.time()).encode()).hexdigest()
        image_type = filename.split('.')[-1]
        return 'imgs/{}.{}'.format(image_name, image_type)


    rename_image в моем случае переименовывает загружаемую картинку в хэш. и в return можно добавить путь. в моем случае будет загружаться в media_root/imgs/<что-то>.jpg #например (при условии, что media_root определен, все всегда будет падать туда)

    добавьте в путь подкаталог с именем user_{его id}. а вот насчет доступности только для этого пользователя - надо отдельно думать.
    Ответ написан
    Комментировать
  • Как получить значение href тэга 'a' средствами BeautifulSoup Python?

    @try100 Автор вопроса
    На пути к познанию Python
    Всем спасибо за помощь! Решил свой вопрос в таком виде:
    def parse(html):
    	soup = BeautifulSoup(html,'html.parser')
    	title = soup.find('h1')
    	image1 = soup.find_all('a', class_='highslide')[0]
    	image2 = soup.find_all('a', class_='highslide')[1]
    		
    	post = []
    
    	post.append ({
    		'title': title.text,
    		'image1': image1.get('href'),
    		'image2': image2.get('href'),
    		})
    	print(post)
    Ответ написан
    Комментировать
  • Библиотеки и модули в python?

    @Miit
    async awaiter
    Библиотека содержит в себе модули для работы с чем-либо. Модуль - это просто файл в котором содержится дополнительный код.
    Ответ написан
    5 комментариев
  • Стоит ли изучать React без углубленных знаний в Javascript?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Имея базовые знания стоит сразу перейти к изучению React либо все же прочитать пару книг и попрактиковаться на чистом JS

    Углубленный JS - понятие растяжимое.
    Я бы посоветовал бы Вам идти по пути добора знаний через гугление, книги Вам в этом плане не помощники, только практика(теорию вы доберете из блогов, гугла). Читать в начале карьерного пути книгу "Вы не знаете JS" - тоже самое что только научившись водить, пытаться брать уроки в лиге Наскар.

    Как делал я - берете условный ToDo Лист, пишите его на чистом JS. В это время у вас будет куча гуглений, ошибок и тд. После того как вы написали тудушку, перепишите её на реакт. У вас в голове начнется понимание процессов, какие реакт решает задачи, насколько убыстряет процесс и тд.

    Далее сделайте мини приложение на JS, допустим планировщик заданий, аналог google keep, либо другой продукт который вы видели, и можете украсть визуальную составляющую, или логику функционала. Как сделали - пишите его на реакт. После таких двух пет проектов - одного маленького, и второго большого, я бы преступал к углубленному изучению уже реакта, и скорее бы шёл на собес. Так как вы все равно в соло не научитесь многим фишкам компаний, а в среде других разработчиков рост новичка растет по экспоненте.

    Новички считают что React это панацея от всех бед, и пихают его даже туда, где обычного JS было бы достаточно. Вот такая вот проф. деформация.
    Ответ написан
    1 комментарий
  • Как стянуть ветку из удаленного репозитория?

    @aol-nnov
    git fetch origin
    git checkout -b <название ветки> origin/<название ветки>


    документация тут: https://git-scm.com/book/en/v2
    Ответ написан
    Комментировать
  • Как распаковать составной архив tar gz?

    @nocfer
    Начинающий разработчик
    Сначала делаешь
    1. Скачиваете оба архива к себе.
    2. У первого архива (который с расширением .gz ) ставим расширение 001.
    3. У второго архива (который с расширением .1 ) — ставим расширение 002.
    4. И т.д. для всех частей архива

    Далее никакого 7-zip. Качаешь Total Commander. Открываешь
    Выделяешь все части архива, заходишь в меню "Файлы", там есть функция "Собрать файлы" (как-то так) .
    Собираешь архив. После этого выбираешь собранный архив и архиватором Total Commander разархивируешь.
    Ответ написан
    1 комментарий
  • Кто проходил курс обучения от learn.python.ru? Как вам?

    @n293 Автор вопроса
    Аналитик
    В общем, я гну свою линию.

    Пошел я на эти курсы. 3-я неделя на подходе.
    Ключевое что могу сказать - тут учат учиться, для меня это плюс.

    Работать надо много.

    Остальное уже после окончания.

    UPD 5 февраля 2018

    Кому лень читать дальше скажу сразу: рекомендую, идите.

    3 февраля закончился мой поток. Как я уже говорил, работать надо много. Очень. Если понимаете, что сольетесь, либо уже сливались с каких-то других мероприятий, то не идите вообще (чуть ниже объясню почему).

    Так вот, первое занятие, все красиво, весело. Лекции, песни, пицца, пляски. Круто.
    Второе занятие. Ты приходишь, ожидаешь чего-то как в прошлый раз. И...нет. "Ребята, дальше у нас практические занятия в группах, до такого-то урока делаем задачки и домашку, а после - дипломный проект в парах".
    Следующие занятия: кодишь, делаешь задания, домашку/диплом, задаешь вопросы, кодишь, кодишь, кодишь.

    Кураторы помогают, причем очень мощно. Но за тебя ничего не сделают. Как огромнейший плюс куратор (по крайней мере мой) не говорил что я решаю задачу неправильно, но помогал ее решить так, как я того хотел.
    Т.е. тебя не ломают, а подталкивают "да, в общем-то так тоже можно, только вот тут сделай так, а тут так". Ну, естественно, кроме откровенной дичи, пожалуй.

    На самом деле, еще копать и копать в плане освоения материала. Потому что это лишь вершинка айсберга, НО(!) за два месяца с НУЛЯ слепить работающее приложение - это мега круто.

    Касаемо диплома: писать его надо в паре с кем-то. Мой партнер слился, поэтому я тащил в одного. Мне в общем-то норм, но навык парного программирования я не получил. Так что если пошли - фигачте до конца и не подставляйте партнера. Либо сливайтесь до разделения на пары, вот.

    И еще раз, то что написано у них на лендинге - это правда. Этой рекламе можно верить :)
    Ответ написан
    3 комментария
  • Как вывести данные из базы данных в сообщение бота телеграм (aiogram)?

    Chegevara_kyc
    @Chegevara_kyc
    db_name и User_data - имя бд

    user_id= id пользователя
    @dp.message_handler(commands = "spider")
    async def start(message: types.Message):
        await message.bot.send_sticker(message.from_user.id, 'CAACAgIAAxkBAAEDl79h0AJfaj1elvgQiZxxI6PsUDUz5gACGAADfoTDCO9Dmo04A4frIwQ')
        con = sqlite3.connect(db_name)
        c = con.cursor()
        select_sql="SELECT pnb FROM User_data WHERE user_id = ?" 
        # тут pnb -то что ищем, user_id - признак
        # знак вопроса не трогай
        c.execute(select_sql, (user_id,))
        results = c.fetchall()
        for row in results:
    
            balance= str(row[0])
    
        await message.bot.send_message(message.from_user.id, ' 0 уровень','\n',balance ,' монет')

    А вообще тут всё просто вроде
    https://pythonru.com/osnovy/sqlite-v-python
    https://www.severcart.ru/blog/all/python_sqlite3/
    Ответ написан
    4 комментария
  • Как определить, сколько памяти потребляет скрипт python (внутри самого скрипта)?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    pip install memory_profiler

    from memory_profiler import memory_usage
    memory_usage()
    Ответ написан
    Комментировать