Авторизация

Вы можете войти через одну из учетных записей:

ИЛИ



Напомнить пароль
Регистрация
0.00

avatar Ненормальное программирование

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

Администраторы (1): Diesel
Модераторы (0): Модераторов здесь не замечено
Читатели (1): apple

Ненормальное программированиеНокогири: парсинг HTML в одну строку

Мучительный опыт парсинга кучи невалидных html и «xml» документов и удивительная простота dapper (сервис) и nokogiri (ruby) заставили потратить 5 часов на написание своей собственной пилы.

Примеры использования:

<?php
$html = gzdecode(file_get_contents('http://habrahabr.ru/'));

$saw = new nokogiri($html);
var_dump($saw->get('a.habracut')->toArray());
// На выходе: Array(6) { [0]=> array(3) { ["class"]=> string(8) "habracut" ["href"]=> string(56) "http://habrahabr.ru/blogs/google_chrome/110099/#habracut" ["#text"]=> string(29) "Читать дальше →" } [1]=> ....
var_dump($saw->get('ul.panel-nav-top li.current')->toArray());
// На выходе: array(2) { ["class"]=> string(7) "current" ["a"]=> array(3) { ["href"]=> string(20) "http://habrahabr.ru/" ["class"]=> string(8) "disabled" ["#text"]=> string(10) "Посты" } }
var_dump($saw->get('#sidebar dl.air-comment a.topic')->toArray());
// На выходе: array(50) { [0]=> array(3) { ["class"]=> string(5) "topic" ["href"]=> string(36) "http://habrahabr.ru/blogs/os/110045/" ["#text"]=> string(63) "ФБР внедряло backdoor'ы в IPSec код OpenBSD (?)" } [1]=> array(3) { ["cl
var_dump($saw->get('a[rel=bookmark]')->toArray());
// На выходе: array(10) { [0]=> array(4) { ["rel"]=> string(8) "bookmark" ["href"]=> string(47) "http://habrahabr.ru/blogs/google_chrome/110099/" ["class"]=> string(5) "topic" ["#text"]=> string(100) "Google объявил Chrome готовым к использованию в бизнес-среде" } [1]=> array(4) { ["rel"]=

Ошибки html игнорируются.
Распознаются вложеные теги (через пробел), а также конструкции вида .class, #id и [attr=value]
Создание из строки: nokogiri::fromString($htmlString); или new nokogiri($htmlString);
Создание из DomDocument: nokogiri::fromDom($dom);

Читать дальше
  • +1
  • Diesel
  • 16 декабря 2010, 12:28
  • add twitter 

Ненормальное программированиеЗагрузка с rghost

rgg.sh:
#!/bin/bash
wget -c `wget -O - $1|egrep -o "http://rghost.ru/download/.*\" "|cut -f1 -d '"'`

Использование:
./rgg.sh "http://rghost.ru/1234567"
  • +1
  • Diesel
  • 16 декабря 2010, 12:03
  • add twitter 

Ненормальное программированиеконвертируем APE 2 FLAC

Довольно много lossless контента в сети встречается в формате Monkey's Audio. По моему мнению, этот формат, как пятое колесо… Я предпочитаю FLAC и из прошлогоднего скрипта alac2flac набросала конвертер с сохранением тэговape2flac на базе функционала ffmpeg.

Собственно, нам понадобятся пакеты ffmpeg flac и экстрактор ape тэгов apeinfo. Если у вас Ubuntu, то просто устанавливаем пакеты, скачиваем утилу apeinfo и ставим её в /usr/local/bin/ (я исхожу от x64 системы, хотя 32 битная версия тоже будет в ней работать. параноики могут скомпилировать из исходников apeinfo и mac свою версию). В общем, задача на три трубки команды:
Читать дальше
  • 0
  • Diesel
  • 10 декабря 2010, 15:34
  • add twitter