• Как обратиться к данным из csv таблицы?

    Maksim_64
    @Maksim_64
    Data Analyst
    Первое я почти все оставлю как у вас что бы вашу логику не нарушать, внесу небольшие изменения.
    def read_csv(filename):   #зачем у вас в оригинале параметр data если вы его не используете логичнее передавать имя файла.
        with open(filename, encoding='utf-8') as file:
            reader = csv.reader(file)
            data = list(reader)
            return data

    далее используем вашу функцию для чтения получаем вложенный список в ответ, а нам он не нужен вложенный нам обычный нужен по этому распрямляем его.
    data = read_csv('urls.csv')
    flat_list = [item for sublist in data for item in sublist]


    далее по все видимости вы собираетесь использовать эти ссылки для парсинга
    пишете функцию которая будет парсить проходитесь циклом по списку flat_list и передаете в функцию по одной ссылке и все. Ваша функция будет принимать параметр url, затем делать request, затем beatifulsoup будет парситьи отдавать результат. Сделайте функцию которая делает это все для одного url, потом циклом по списку внутри цикла вызывайте функцию с параметром url.

    А теперь общие соображения.
    Зачем csv? когда читаешь csv он возвращает список под каждую строку, с обычного txt, мы бы этого избежали, я бы использовал бы вообще для записи json. Где ключом было бы название товара, а значением ссылка. Потому что если что не будет работать, то будет известно какой товар не удается спарсить.

    Нужно создавать log file и писать туда что отдал сервер при запросе и туда же писать различные исключения а то потом ума не дашь где ошибка.

    В коде много лишнего, параметр data в обоих случаях нужно заменить на filename. И много других погрешностей.
    Ответ написан
  • Почему не парсятся картинки?

    Maksim_64
    @Maksim_64
    Data Analyst
    img_item = item.find('picture').find('img').get('data-src')

    Если нужно полный путь до картинки то можешь сделать вот так
    img_item = 'https://a-dubrava.ru' + item.find('picture').find('img').get('data-src')
    Ответ написан
    2 комментария
  • Как перевести на https картинки в wordpress?

    ставите плагин HTTP / HTTPS Remover, он меняет все ссылки на относительные
    Ответ написан
    Комментировать
  • Как перевести таблицу html в xlsx таблицу?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    pytablereader
    pytablewriter
    Ответ написан
    Комментировать
  • Как перевести таблицу html в xlsx таблицу?

    NeiroNx
    @NeiroNx
    Программист
    загрузить html как xml.dom.minidom
    with open("file.html","rb") as fp:
        html = xml.dom.minidom.parseString(fp.read())

    потом пройтись по элементам<tr>

    row,col = -1,-1
    for tr in html.getElementsByTagName('tr'):
         row +=1
         for td in tr.getElementsByTagName('td'):
             col +=1
             workbook.cell(col=col,row=row).value = td.firstChild.nodeValue
    Ответ написан
    Комментировать
  • Как использовать Proxy в TelegramBot?

    @ItNoN
    requests.exceptions.SSLError: HTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: /bot601452123:AAFiRXuFyHcoNdOsOI2ty9NXCPgx-3n14Uo/getUpdates?offset=1&timeout=123 (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)'),))
    [Finished in 2.4s]


    Говорит, что SSL сертификат нужен.
    Попробуй использовать рабочие прокси с протоколом https

    from telebot import apihelper
    apihelper.proxy = {'https':'https://88.204.154.155:8080''}
    Ответ написан
    Комментировать
  • Как использовать данные из таблиц Excel в скрипте Python?

    @sazhyk
    Александр уже посоветовал openpyxl. Отвечу немного в другом ключе.
    Для начала было бы неплохо увидеть пример файла, который вы хотите парсить.
    Не надо импортировать в CSV. Openpyxl всё сам умеет делать.
    from openpyxl import load_workbook
    
    wb = load_workbook("/path/to/file.xls")           # Открываем файл
    sheet = wb.get_sheet_by_name('New Sheet')         # Выбираем лист
    # Выбираем диапазон заполненных ячеек
    max_row = sheet.max_row                           # Последняя заполненная строка
    max_col = sheet.max_column                        # Последняя заполненная колонка
    for r in range(1, max_row + 1):
        for c in range(1, max_column + 1):
            val = sheet.cell(row=r, column=c).value   # Получаем в цикле значение в конкретной ячейке
            # do something

    Дальше делаете с вашими данными всё, что захотите. Пример может и не идеальный, но думаю суть ясна. Либа довольно проста в освоении. Если надо серьёзнее работать с данными экселя - прислушайтесь к совету freelion93 и используйте pandas. Мне он показался более сложным для освоения, но и функционал там значительно шире. Но это сугубо моё личное мнение.
    Ответ написан
    3 комментария
  • Как использовать данные из таблиц Excel в скрипте Python?

    NeiroNx
    @NeiroNx
    Программист
    Сохранять в CSV - оригинальное решение, я пользуюсь этим:
    https://openpyxl.readthedocs.io/en/stable/
    Читает, пишет
    Ответ написан
    Комментировать
  • Как использовать данные из таблиц Excel в скрипте Python?

    @freelion93
    Excel файл сохрани в формате CSV, а обрабатывать удобно в датафрейме pandas

    #устанавливаем pandas
    !pip install pandas
    #импортируем библиотеку pandas
    import pandas as pd 
    # Читаем из 'excel.csv' 
    data = pd.read_csv("excel.csv") 
    # Выводим первые строчки
    data.head()


    Краткий туториал по pandas
    Ответ написан
    Комментировать
  • Как импортировать html в python скрипт?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    html_text = """
    <table class="content-table">
    ...
    </table>
    """
    
    import lxml.html
    
    root = lxml.html.fromstring(html_text)
    
    header = [x.text for x in root.xpath('.//tr/th')]
    
    for item in root.xpath('.//tr'):
        td = [x.text for x in item.xpath('.//td')]
        if td:
            print(dict(zip(header, td)))


    {'Год': 'след 12m. (прогноз)', 'Дивиденд (руб.)': '83.71', 'Изм. к пред. году': '+53.2%'}
    {'Год': '2019', 'Дивиденд (руб.)': '54.64', 'Изм. к пред. году': '+28.78%'}
    {'Год': '2018', 'Дивиденд (руб.)': '42.43', 'Изм. к пред. году': '-16.13%'}
    {'Год': '2017', 'Дивиденд (руб.)': '50.59', 'Изм. к пред. году': '+361.59%'}
    {'Год': '2016', 'Дивиденд (руб.)': '10.96', 'Изм. к пред. году': '+3.59%'}
    {'Год': '2015', 'Дивиденд (руб.)': '10.58', 'Изм. к пред. году': '+28.55%'}
    {'Год': '2014', 'Дивиденд (руб.)': '8.23', 'Изм. к пред. году': '-4.3%'}
    {'Год': '2013', 'Дивиденд (руб.)': '8.6', 'Изм. к пред. году': '+21.47%'}
    {'Год': '2012', 'Дивиденд (руб.)': '7.08', 'Изм. к пред. году': '+41.04%'}
    {'Год': '2011', 'Дивиденд (руб.)': '5.02', 'Изм. к пред. году': '-23.48%'}
    {'Год': '2010', 'Дивиденд (руб.)': '6.56', 'Изм. к пред. году': '+48.42%'}
    {'Год': '2009', 'Дивиденд (руб.)': '4.42', 'Изм. к пред. году': '-21.77%'}
    {'Год': '2008', 'Дивиденд (руб.)': '5.65', 'Изм. к пред. году': '+22.83%'}
    {'Год': '2007', 'Дивиденд (руб.)': '4.6', 'Изм. к пред. году': '+360%'}
    {'Год': '2006', 'Дивиденд (руб.)': '1', 'Изм. к пред. году': 'n/a'}
    {'Год': '2005', 'Дивиденд (руб.)': '0', 'Изм. к пред. году': '-100%'}
    {'Год': '2004', 'Дивиденд (руб.)': '2', 'Изм. к пред. году': 'n/a'}


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

    irestone
    @irestone
    Junior Web Developer
    Во-первых: "На все это у меня есть пару недель.(Поверьте я псих, и не такое могу)" - нет, не можешь. За пару недель можно изучить некоторые технологии, но научиться правильно думать нельзя.
    Во-вторых: "На Видеокурсы времени нет! Нужна текстовая информация!" - видео усваивается лучше. Но, в целом, нужно комбинировать все возможные ресурсы.
    В-третьих: "JavaScript (НЕНАВИЖУ)" - нет смысла ненавидеть молоток. Это очень наивная позиция. Выбери задачу и используй то, что нужно.
    В-четвертых: Объем математики определяется целью: занимаешься машинным обучением, искусственным интеллектом и прочим дата сайенс или пишешь физический движок, например, - понадобится серьезная математика. В остальных случая хватит школьного курса, и то средней школы.

    Непосредственно подготовка:
    Cracking the Coding Interview
    Elements of Programming Interviews in Python
    Из этих книг тебе станет ясно, что нужно знать, чтобы пройти собеседование на работу.

    Тренируй problem solving скилл на специальных сервисах. Популярные: https://leetcode.com, https://www.hackerrank.com, https://practice.geeksforgeeks.org
    Нужно не просто решать задачи, а учиться это делать правильно, походу изучая алгоритмы, структуры данных и анализ сложности. Грокаем алгоритмы - хороший выбор. Будет отлично, если найдешь друга, с которым можно будет тренировать witeboard'ы, когда один берет на себя роль интервьюера и задает другому задачу. Это важно. Так вы сможете разобраться, где и почему вы застреваете и научитесь правильно выстраивать мыслительный процесс при решении задач. По большому счету, это твой основной навык как программиста, именно его и будут проверять в первую очередь при собеседовании на работу. По крайней мере, должны. Если спрашивают только конкретные технологии, то тебе стоит задуматься, стоит ли у них работать. (Подсказка: нет)

    Изучай ООП и Паттерны проектирования.
    Все доступно и с примерами.
    Видео по одной популярной книге, которую тоже можешь начать читать.

    Изучай инструменты (языки, фреймворки и пр) под конкретную сферу. Не надо изучать все подряд, учи то, что нужно для того, чем ты хочешь заниматься, конкретный стек технологий. Помни про принцип Парето.
    Например, вот хорошие ресурсы по питону:
    https://www.amazon.com/dp/1593279280/
    https://www.amazon.com/dp/1593275994/
    https://www.youtube.com/watch?v=8DvywoWv6fI

    Наконец, ты должен понимать, что нетехнические, т.н. софт-скиллы не менее (а в случае с джуном часто более) важны. Я не зря предлагал ресурсы на английском - этот язык разработчику знать важнее, чем любой язык программирования. Не знаешь, с чего начать? Посмотри "Полиглот. Выучим английский за 16 часов!", начни пользоваться https://lingualeo.com (там есть и тренировки и курсы)

    Окружи себя инфосферой: ютуб, твиттер, телеграм и пр.
    Мне, например, нравятся эти ребята:
    https://www.youtube.com/channel/UCVbz7l0COUdLupcY4...
    https://www.youtube.com/user/HexletUniversity
    https://www.youtube.com/channel/UC4xKdmAXFh4ACyhpi...
    Они помогут тебе начать думать в правильном направлении.

    Удачи!
    Ответ написан
    3 комментария
  • Можно ли в Python во float отбросить k знаков после запятой?

    nextel
    @nextel
    ненавижу javascript
    оно??
    >>> a=13.946
      >>> print(a)
      13.946
      >>> print("%.2f" % a)
      13.95
    Ответ написан
    10 комментариев