Skip to content

Instantly share code, notes, and snippets.

View Butochnikov's full-sized avatar

Alexey Butochnikov

  • Russia
  • 20:11 (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

Для запросов можно юзать стандартный 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