Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

0

Share

Download to read offline

Python инструменты решения типичных задач

Download to read offline

Докладчик:
Александр Сапронов

Описание:
Мы вместе пройдем по популярным задачам — от парсинга сайтов до научных вычислений и рассмотрим мощь языка Python

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Python инструменты решения типичных задач

  1. 1. Python: инструменты решения типичных задач sapronov.alexander92@gmail.com @sapronovalex92 pynsk.nsk@gmail.com vk.com/pynsk facebook.com/PyNskCom @py_nsk Александр Сапронов:
  2. 2. В начале был... Гвидо! В феврале 1991 года опубликован код языка 2
  3. 3. Популярность сейчас 6 место 6 место 4 место 1 место 60k+ модулей на pypi.python.org 3
  4. 4. ➔Скриптинг приложений (Blender, Inkscape) ➔Сетевые приложения (ABC bittorrent client) ➔Для “склейки” компонентов ➔Web-проекты ➔Игры ➔Системные утилиты ➔GUI-программы Где Python хорош? 4
  5. 5. Python не подходит для Задач где: - нужен максимально быстрый отклик - требуется крайне низкое потребление RAM - надо быстро масштабировать решение 5
  6. 6. Типичные задачи - Парсеры - Генерация отчетов - CMS, простые сайты - SRM, CRM - Моделирование (Наука) - Обработка данных - Утилиты c GUI - Утилиты консольные 6
  7. 7. Парсинг 7 stdlib: HTMLParser (2), html.parser (3) LXML, Beautiful Soup from html.parser import HTMLParser class MyHTMLParser(HTMLParser): def handle_starttag(self, tag, attrs): print("Encountered a start tag:", tag) def handle_endtag(self, tag): print("Encountered an end tag :", tag) def handle_data(self, data): print("Encountered some data :", data) parser = MyHTMLParser() parser.feed('<html><head><title>Test</title></head>' '<body><h1>Parse me!</h1></body></html>') (2) - Python 2.* (3) - Python 3.* 2. Парсим HTML/XML с помощью 1. Делаем запросы с помощью urlib, requests
  8. 8. Парсинг по взрослому grab - http://grablib.org/ scrapy - http://scrapy.org/ 8 import scrapy class BlogSpider(scrapy.Spider): name = 'blogspider' start_urls = ['http://blog.scrapinghub.com'] def parse(self, response): for url in response.css('ul li a::attr("href")').re(r'.*/dddd/dd/$'): yield scrapy.Request(response.urljoin(url), self.parse_titles) def parse_titles(self, response): for post_title in response.css('div.entries > ul > li a::text').extract(): yield {'title': post_title} $ scrapy runspider myspider.py
  9. 9. Генерация отчетов 9 Отчет График PDF Excel
  10. 10. Генерация отчетов 10 Модуль для создания графики: matplotlib
  11. 11. Генерация отчетов 11 PDF - xhtml2pdf - pdfkit - PDFMiner - PyPDF2 - reportlab import pdfkit pdfkit.from_url('http://google.com', 'out.pdf') pdfkit.from_file('test.html', 'out.pdf') pdfkit.from_string('Hello!', 'out.pdf')
  12. 12. Генерация отчетов 12 Excel - xlrd (read) - xlwt (write) - xlutils - XlsxWriter - openpyxl import xlsxwriter workbook = xlsxwriter.Workbook('demo.xlsx') worksheet = workbook.add_worksheet() worksheet.set_column('A:A', 20) bold = workbook.add_format({'bold': True}) worksheet.write('A1', 'Hello') worksheet.write('A2', 'World', bold) worksheet.write(2, 0, 123) worksheet.write(3, 0, 123.456) worksheet.insert_image('B5', 'logo.png') workbook.close()
  13. 13. Генерация отчетов 13 Отчет График PDF Excel - xhtml2pdf - pdfkit - PDFMiner - PyPDF2 - reportlab - matplotlib - xlrd (read) - xlwt (write) - xlutils - XlsxWriter - openpyxl
  14. 14. Web - CRM - SRM - CMS - Web-store - Sites 14
  15. 15. Наука и обработка данных 15
  16. 16. Утилиты с GUI 16
  17. 17. Консольные утилиты - argparse - optparse - Clint - Click - docopt - Cli - Plac - Cliff 17 import click @click.command() @click.option('--count', default=1, help='Number of greetings.') @click.option('--name', prompt='Your name', help='The person to greet.') def hello(count, name): for x in range(count): click.echo('Hello %s!' % name) if __name__ == '__main__': hello() $ python hello.py --count=3 Your name: John Hello John! Hello John! Hello John!
  18. 18. 18 sapronov.alexander92@gmail.com @sapronovalex92 pynsk.nsk@gmail.com vk.com/pynsk facebook.com/PyNskCom @py_nsk PyNSK контакты: Мои контакты: ru.linkedin.com/in/alexsapronov Питоны кончились… Вопросы?

Докладчик: Александр Сапронов Описание: Мы вместе пройдем по популярным задачам — от парсинга сайтов до научных вычислений и рассмотрим мощь языка Python

Views

Total views

690

On Slideshare

0

From embeds

0

Number of embeds

23

Actions

Downloads

14

Shares

0

Comments

0

Likes

0

×