Skip to content

Instantly share code, notes, and snippets.

View Butochnikov's full-sized avatar

Alexey Butochnikov

  • Russia
  • 21:48 (UTC +03:00)
View GitHub Profile
@Butochnikov
Butochnikov / query.sql
Created May 16, 2020 15:08 — forked from reinink/query.sql
Text search across multiple tables using MySQL
select
first_name,
last_name
from
users
left join
companies on companies.id = users.company_id
where (
companies.name like 'TERM%' or
first_name like 'TERM%' or
@Butochnikov
Butochnikov / nightmare.sh
Created February 13, 2018 21:43 — forked from dwickstrom/nightmare.sh
NightmareJS - install Electron on Ubuntu 14.04
apt-get -y update
apt-get -y upgrade
apt-get -y --force-yes install make unzip g++ libssl-dev git xvfb x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps clang libdbus-1-dev libgtk2.0-dev libnotify-dev libgnome-keyring-dev libgconf2-dev libasound2-dev libcap-dev libcups2-dev libxtst-dev libxss1 libnss3-dev gcc-multilib g++-multilib
npm -f init
npm i -S nightmare
xvfb-run nodejs index.js
@Butochnikov
Butochnikov / gist:200d4e7b06b0710de725
Created December 23, 2014 22:04
RoyalSlider thumbnails module
(function($) {
"use strict";
/**
*
* RoyalSlider thumbnails module
* @version 1.0.6:
*
* 1.0.1

Для запросов можно юзать стандартный http://golang.org/pkg/net/http/

С парсингом все несколько сложней. Есть пакет http://godoc.org/code.google.com/p/go.net/html и на его базе https://godoc.org/code.google.com/p/go-html-transform/h5. Вот два маленьких примера http://canop.org/blog/?p=439 и http://golang-examples.tumblr.com/post/47426518779/parse-html. Еще есть непонятный https://github.com/moovweb/gokogiri. Ну и старый добрый http://golang.org/pkg/regexp/

Если нужно сохранять в базу, то тут легионы вариантов.

Самый большой плюс Go в скрейпинге - это, конечно же, го-рутины. Запустил на четырех ядрах несколько рутин и вообще не паришься. С питоном тож так можно делать, но с Go значительно проще.

upd:

CREATE TABLE IF NOT EXISTS `county` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(124) NOT NULL,
`short_name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
INSERT INTO `county` (`id`, `name`, `short_name`) VALUES
@Butochnikov
Butochnikov / country.sql
Last active December 6, 2020 09:04
Список всех стран и их сокращений (кодов) по стандарту ISO 3166-1 на русском языке в формате SQL.
CREATE TABLE country (id VARCHAR(2) NOT NULL, name VARCHAR(64) NOT NULL, PRIMARY KEY(id));
INSERT INTO country (id, name) VALUES ('AU', 'Австралия');
INSERT INTO country (id, name) VALUES ('AT', 'Австрия');
INSERT INTO country (id, name) VALUES ('AZ', 'Азербайджан');
INSERT INTO country (id, name) VALUES ('AX', 'Аландские о-ва');
INSERT INTO country (id, name) VALUES ('AL', 'Албания');
INSERT INTO country (id, name) VALUES ('DZ', 'Алжир');
INSERT INTO country (id, name) VALUES ('AS', 'Американское Самоа');
INSERT INTO country (id, name) VALUES ('AI', 'Ангилья');
@Butochnikov
Butochnikov / !all_country_laravel (rus).md
Last active May 22, 2022 12:41
Список всех стран и их сокращений (кодов) по стандарту ISO 3166-1 в формате "Schema class" для Laravel 4.

Описание.

Список всех стран и их сокращений (кодов) по стандарту ISO 3166-1 в формате "Schema class" для Laravel 4 на русском языке.

Инструкция.

  1. В консоли запустите команду: "php artisan migrate:make create_country_table --table=country --create";
  2. Замените содержимое файла "\app\database\migrations\xxxx_xx_xx_xxxxxx_create_country_table.php" содержимым файла "create_country_table.php" (см.ниже);
  3. Замените файл "\app\database\seeds\DatabaseSeeder.php" или его содержимое файлом "DatabaseSeeder.php";
  4. в консоли выполните команду: "php artisan migrate --seed";
  5. все.
@Butochnikov
Butochnikov / feed-rss2.php
Created May 14, 2013 14:53
RSS шаблон с исправленным заголовком вида: "Название рубрики » Название блога".
<?php
/**
* RSS2 Feed Template for displaying RSS2 Posts feed.
*
* @package WordPress
*/
header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true);
$more = 1;