Быстрый в изучении - мощный в программировании
 

Изучаем азы парсинга посредством Python+lxml

python lxml

Здравствуйте, здравствуйте и еще раз здравствуйте! Сегодня хотелось бы посвятить вас в такую тему, как разбор разметки страниц html, используя для этого Python+lxml. На самом деле, это не так сложно, как кажется, поэтому вы с легкостью сможете обуздать довольно простые правила касательно этого процесса. Что такое lxml? Это удобная в работе библиотека, которая позволяет обрабатывать разметку, как html , так и xml, при помощи языка Python. Стоит также отметить ее уникальную способность разбития частей документа в дерево. Итак, приступим.

Какую цель вы будете преследовать, создавая парсинг?

Сейчас многие занимаются различными видами спорта, поэтому в качестве примера возьмем данную тематику. Предположим, что нас заинтересовало количество совершенных болевых приемов, которые были зафиксированы в момент проведения мировых турниров по ММА. Недолго думая, я воспользовался гуглом и смог подыскать для себя подходящий сайт, где мне удалось получить доступ к требуемым данным. Она подразумевает собой полную информацию по всем проведенным турнирам в категории смешанные единоборства.

Правда, нельзя не упомянуть про один важный нюанс: предоставленную информацию было крайне сложно анализировать. Получается, что статистика для всех турниров находилась не на одной странице, а была разбита на несколько частей, каждая из которых была на разных страницах, что и причиняет главный дискомфорт. Это же можно сказать и про возможность удобного просмотра названия турнира, а также дату его проведения. Для того, чтобы не клацать по сто раз по разным страницам и запоминать информацию на них, будет разумно создать специальный парсер, который в значительной степени облегчит процесс анализа всех данных.

Далее...

Выполнение запроса в SQLite3 через Python

Согласно спецификации DB-API 2.0 после создания объекта соединения необходимо создать объект-курсор. Все дальнейшие запросы должны производиться через этот объект. Создание объекта-курсора производится с помощью метода cursor(). Для выполнения запроса к базе данных предназначены следующие методы объекта-курсора:

close() - закрывает объект-курсор

executescript(<Запросы SQL через точку с запятой>) - выполняет несколько SQL запросов за один раз. Если в процессе выполнения запросов возникает ошибка, то метод возбуждается исключение. В качестве примера создадим базу данных и три таблицы в ней:

# -*- coding: utf-8 -*-
import sqlite3
con = sqlite3.connect("catalog.db")
cur = con.cursor()	# Создаем объект-курсор
sql = """\
CREATE TABLE user (
	id_user INTEGER PRIMARY KEY AUTOINCREMENT,
	email text,
	passw text
);
 
CREATE TABLE rubr (
	id_rubr INTEGER PRIMARY KEY AUTOINCREMENT,
	name_rubr TEXT
);
 
CREATE TABLE site (
	id_site INTEGER PRIMARY KEY AUTOINCREMENT,
	is_user INTEGER,
	id_rubr INTEGER,
	url TEXT,
	title TEXT,
	iq INTEGER
);
"""
 
try:	# обработка исключения
	cur.executescript(sql) # Выполняем SQL-запрос
except sqlite.DatabaseError, err:
	print u"Ошибка:", err
else:
	print u"Запрос успешно выполнен"
cur.close()	# Закрываем объект-курсора
con.close()	# Закрываем соединение
raw_input()
Далее...

Отправка SMS через Python

Отправка SMS Python

Для сайтов с объявлениями всегда появляется необходимость отправить смс сообщение на мобильный телефон создателя объявления. Настало время показать как через Python можно отправить SMS сообщения на мобильные телефоны. Скажу сразу халявы нет, т.к. я буду использовать сервис SMSintel из за его низких цен на отправку SMS. У сервиса довольной большой арсенал стран которых он поддерживает и весьма вкусные условия сотрудничество. Если вы какая либо фирма которая хочет отправить массовые рассылки своим клиентам, то можно договориться с сервисом SMSintel на более низкие цены.

Можно расширить функционал скрипта до класса, чтобы получить сколько денег на счете и разную информацию об аккаунте. Но, такие решения зачатую бессмысленные и все,что от нас требуется это надежная доставка SMS и уверенность, что сообщение дошло до нашего клиента. Скрипт из данной статьи можно использовать и для рассылки SMS на несколько номеров. Номера мы будем хранить в текстовом документа, но это не мешает вам усовершенствовать скрипт работая в пару с MySQL базой.

Далее...

Создание и открытие базы данных SQLite в Python

SQLite python

Для создания и открытия базы данных используется функция connect(). Функция имеет следующий формат:

connect(database[, timeout][, isolation_level][, detect_types][, factory])

В параметре database указывается абсолютный или относительный путь к базе данных. Если база данных не существует, то она просто открывается без удаления имеющихся данных. Вместо пути к базе данных можно указать значение :memory:, которое означает, что база данных будут удалены.

Все остальные параметры являются необязательными и могут быть указаны в произвольном порядке путем присвоения значения названию параметра. Необязательный параметр timeout задает время ожидания снятия блокировки с открываемой базы данных. По умолчанию значение параметра timeout равно пяти секундам. Предназначение остальных параметров мы рассмотрим немного позже.

Далее...

Создание сайта. О чем нужно помнить

Создание сайта. О чем нужно помнить
Сколь ни странно, по сей день одна из причин неадекватных дизайнерских решений – потребность клиента максимально «украсить» свой сайт. До сих пор многие пользователи связывают избыточный веб-дизайн страниц со стоимостью предложенной дизайнером услуги, следовательно – состоятельностью владельца, его уверенностью в своем деле. На деле же очень часто подобный подход способен скорее лишать этой уверенности.

На самом деле, если вы хотите, чтобы на ваш сайт приходила целевая аудитория, вам стоит позаботиться об этом уже на этапе его проектирования. Итак, несколько дизайнерских решений, которые ассоциируются с современными оформительскими тенденциями, но не способствуют продвижению сайта.

Далее...

Базовые языки программирования

Базовые языки программирования
Сегодня человечество уже не мыслит свою жизнь без компьютера. Играть в компьютерные игры, знакомиться с друзьями в социальных сетях, работать в прикладных программах – стало обычным делом. Всё это связано с работой специального программного обеспечения. Для его написания требуется знание особого языка понимаемого компьютером – языка программирования.

Насчитывается несколько десятков основных языков программирования. Одни придуманы для создания только определённого вида программного обеспечения, на других можно написать практически любое. Но существуют и родоначальники. Кратко ознакомимся с основными экземплярами.

Далее...

Основы SQLite - С чего начать?

SQLite Python

В предыдущих статьях мы рассматривали работу с файлами и научились сохранять объекты с доступом по ключу с помощью модуля shelve. При сохранении объектов этот модуль использует возможности модуля pickle для сериализации объекта и модуль anybm для записи получившейся строки по ключу в файл. Если необходимо сохранять в файл просто строки, то можно сразу воспользоваться модулем anybm. Однако если объем сохраняемых данных велик и требуется удобный доступ к ним, то вместо этого модуля лучше использовать базы данных.

Начиная с версии 2.5, в состав стандартной библиотеки Python входит модуль sqlite3, позволяющий работать с базой данных SQLite. Для использования этой базы данных нет необходимости устанавливать сервер, ожидающий запросы на каком-либо порту, т.к. SQLite напрямую работает с файлом базы данных.

Далее...

Доступ к базе данных SQLite из Python

python sqlite3

Модуль sqlite3, входит в состав стандартной библиотеки Python, начиная с версии 2.5, и в дополнительной установке не нуждается. Если необходимо получить доступ к SQLite в предыдущих версиях Python, то следует воспользоваться модулем pysqlite. Этот модуль не входит в состав стандартной библиотеки, поэтому его придется устанавливать отдельно.

Для работы с базами данных в языке Python существует единый интерфейс доступа. Все разработчики модулей, осуществляющих связь базы данных с Python, должны придерживаться спецификации DB-API (DataBase Application Program Interface). Это спецификация более интересна для разработчиков модулей, чем для прикладных программистов, поэтому мы не будем ее подробно рассматривать.

Модуль sqlite3 поддерживает спецификацию DB-API 2.0, а так же предоставляет некоторые нестандартные возможности. Поэтому, изучив методы и атрибуты этого модуля, вы получите достаточно подробное представление о спецификации DB API 2.0 и сможете в дальнейшем работать с другой базой данных. Получить номер спецификации, поддерживаемой модулем, можно с помощью атрибута apilevel:

Далее...

Заправка принтера

Пятница, 7 февраля 2014 г.   Archy

Заправка принтера

В наш век цифровой техники, принтер – незаменимая вещь, которая должна присутствовать в каждом доме. Он может понадобиться и при печати служебных документов, при печати курсовых студентам, а как приятно распечатать фотографию, сделанную недавно на телефон или фотоаппарат! Единственная беда – заправка картриджей. Самостоятельно это делать довольно сложно, да и отмываться потом от краски не очень приятно. Зачем такие страдания, если можно легко заправить принтер в мастерской, затратив при этом не более 15 минут.

Далее...

Создание базы данных SQLite в Python

создание базы sqlite

Попробуем создать новую базу данных в SQLite. Запускаем командную строку. Для этого в меню Пуск выбираем пункт Выполнить. В открывшемся окне набираем команду cmd и нажимаем кнопку ОК. Откроется черное окно, в котором будет приглашение для ввода команд. Переходим в папку C:\book, выполнив команду:

cd C:\book

В командной строке должно быть приглашение:

C:\book

По умолчанию в консоли используется кодировка cp866. Чтобы сменить кодировку на cp1251, в командной строке вводим команду:

chcp 1251

Далее...