• Научиться парсингу - с чего начать?

    @kryvel
    Системный администратор
    Для парсинга я бы посоветовал использовать Python. Он довольно гибкий и простой в изучении. И для этих целей подходит как нельзя лучше. Особенно если нужно парсить динамический контент (AJAX, javascript и постзагруза)
    Альтернативой здесь может быть Java, но это слишком сложно для начинающих
    Можно использовать такую связку:
    Python, Selenium+phantomjs ( загрузка страниц ), beautifulsoup (парсинг html), pymysql (для выгрузки в ДБ).
    Если контент статический то все еще проще - Python + beautifulsoup
    Работает все очень быстро. А главное api очень интуитивное и разобраться в функционале очень легко.
    Ответ написан
    Комментировать
  • Научиться парсингу - с чего начать?

    mixtape774
    @mixtape774
    Занимаюсь Web, Desktop разработкой и реверсингом
    Для парсинга изучайте запросы и ответы от HTTP серверов, через сниффер (например Charles). Освойте базы языка C#. Используйте библиотеку xNet для C# от нашего соотечественника. Для хранения данных советую SQLite и NoSQL (в зависимости от задачи).
    Тьму проектов уже сделал на них, работает очень шустро, рекомендую.
    Ответ написан
    Комментировать
  • Научиться парсингу - с чего начать?

    @kappka
    Если хотите начать с чего-то приземленного не боясь запутаться - посмотрите в сторону xpath. Применяется почти во всех современных языках (в том числе C#, Java). Для практики самое то. Примерно разобравшись с тем, что это такое, сразу поставьте себе задачу. К примеру, спарсить много данных, залить всё в свою БД (сразу и с этим потренируетесь), и дальше, к примеру, строить графики (самый простой вариант).
    Ответ написан
    Комментировать
  • Научиться парсингу - с чего начать?

    @hdworker
    Для парсинга обычных страничек используйте php-либу phpQuery.
    Для парсинга ajax-стариничек, то есть страниц с динамически загружаемым контентом, которые phpQuery видит как пустые, используйте java-либу htmlUnit, с помощью которой можно написать простенький код получения и сохрания страницы в файл, который потом можно распарсить с помощью phpUnit.
    Язык селекторов phpQuery аналогичный jQuery, так что сложностей возникнуть не должно.
    Самый простой способ -- выбрать сайт, открыть его в f11 и тренироваться.
    Ответ написан
    Комментировать
  • Научиться парсингу - с чего начать?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Деревья, регулярки, мультипоточность и NoSQL-база.
    Ответ написан
    2 комментария
  • Научиться парсингу - с чего начать?

    @throughtheether
    human after all
    С php не имел удовольствия работать, но поводу парсинга могу пояснить.
    Что вам, по большому счету, надо, так это:

    1) скачать страничку сайта или сделать вызов HTTP API. В этом вам помогут библиотеки вроде curl.

    2) разобрать полученные в п.1) данные. В случае API, как правило,это JSON. В случае HTML вам пригодится знание XPATH-выражений (которые также помогут, если в результате выполнения п. 1) вы имеете XML) и css-селекторов. Исполнять эти запросы будет XML- или DOM-парсер.

    3) полученные в п.2) данные сохранить в конечном или промежуточном виде: CSV, записи в RDBMS (sqlite, mysql, postgresql) или NoSql (Mongo, например)

    В дальнейшей работе помогут Selenium (или другой HTTP клиент с исполнением javascript), очереди заданий, кэширование (redis).

    Думаю, направление для поиска я вам задал.
    Ответ написан
    2 комментария
  • Научиться парсингу - с чего начать?

    kimono
    @kimono
    Web developer
    В самом парсинге нет ничего сложного - берете несколько кусков чужого кода (например несколько однотипных страниц HTML с товаром или новостями), определяете то что вам нужно вытащить, далее смотрите какие-то закономерности, вложенности, признаки и т.д. Определяете - всегда ли это работает или нет. Пишете шаблон (или шаблоны в циклах), потом проверяете тестами - лучше онлайн (например https://regex101.com/ ), чтобы можно было сразу видеть результат.
    Другое дело как быть со "спарсенными" данными - стоит им доверять полностью или нет. Что делать с данными, если что-то пошло не так.
    Ответ написан
    1 комментарий
  • Научиться парсингу - с чего начать?

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

    2) Нужно иметь представление, как работает самый обычный способ получения контента - Curl. Попробуйте скопировать что то, поработать, представить в xml документ и тд. Тут вы определитесь с принципом работы парсера.
    - парсер получает вводую информацию -> с учетом программы и вводных данных, парсер запрашивает определенные данные -> парсер обрабатывает данные для пользователя -> при необходимости, парсер повторяет запрос (инициированный пользователем или рекурсий) -> конец

    3) Далее вы дойдете до механизмов защиты от парсинга:
    - ограничение запросов на 1 ip, на один клиент и тд
    - подгузка информации после загрузки контента
    - дополнительный запрос на подгрузку контента с CSRF и другими способами
    - блокирование ip
    Это откроет вам парсеры типа PhantomJs, Научит пользоваться прокси, мимикрировать под популярные браузеры и тд.
    Так же вы дойдете до многопоточности работы парсера, и подумаете о переходе на C и подобный язык программирования. Общаясь с сайтом уже посредством api.

    А дальше, сталкиваяь с новыми проблемами, будете их решать.
    Ответ написан
    1 комментарий
  • Научиться парсингу - с чего начать?

    Pjeroo
    @Pjeroo
    Веб-разработчик
    Регулярные выражения и DOM (если парсинг HTML)
    Ответ написан
    Комментировать
  • С чего начать создавать онлайн калькулятор расчета стоимости продуктов?

    kolloss
    @kolloss
    .NET-программист
    Уже год прошёл почти с момента написания вопроса, но, думаю, найдутся люди с таким же. Поэтому (* на правах рекламы) могу посоветовать сервис CalcCreator. Это конструктор калькуляторов, здесь бесплатно вы сможете создать калькулятор даже с формой обратной связи. Если возникнут вопросы - пишите нам в поддержку - поможем.
    Ответ написан
    4 комментария
  • Есть ли фриланс ближе к 30?

    @tef
    У вас список нацеленный, что бы делать сайты, недорого, без рекламы и смс...
    Про руби был тут хороший совет. Не нужно вникать в миллиард фреймворков и каждый раз учиться программировать заново. Сэкономите много нервных клеток.
    Если нужно то, что в мейнстриме называется front-end то, это html/css/js. Те кто повторяют шарманку про то, что в javascript низкий уровень вхождения, по-моему несут бред. Как задать условие или пульнуть цикл или рекурсию можно понять за пару дней на любом языке. Как сделать то, что вам нужно и при этом не повырывать из головы все волосы, это совсем другое.
    Ответ написан
    Комментировать
  • Как вникнуть в тонкости back end разработки?

    Stac
    @Stac
    Серверные скрипты в своем простейшем случае (PHP, Perl, CGI-скрипты на любых других языках) весьма похожи на неинтерактивные консольные программы (утилиты командной строки).

    Они принимают данные на вход через заголовки и тело HTTP-запроса, что-то быстро делают и выводят результат [в браузер].

    PHP или CGI-скрипт вызывается вебсервером (программой) в процессе отбработки входящего запроса (request) . Он же получает результат работы скрипта и фактичеки возвращает браузеру в ответном HTTP-запросе (response).

    HTTP-запросы это чистый текст с минимальной структурой, с которой имеет смысл ознакомиться.

    В некоторых технологических стеках сама прикладная программа и является вебсервером (например, node.js и Ruby On Rails - впрочем, не влададею эти технологиями, могу ошибаться).
    Но даже в этом случае прикладной программист не работает пакетами и битами (может, если захочет, но на практике это не нужно).

    Прикладная среда выполнения (вебсервер или фреймфорк), приняв запрос, дает программисту доступ к его элементам через глобальные переменные или объекты, в зависимости от того, как принято в конкретном языке программирования.
    Для PHP это глобальные переменные (ассоциативные массивы) $_SERVER, $_REQUEST и др. В первой можно найти некоторые HTTP-заголовки, кое-какие данные о сервере и удаленном клиенте (IP адрес, например). Во второй собраны все входные данные, переданные через URL (site.ru/page.php?key=value&key2=value2), в теле POST запроса, через куки (фактически HTTP-заголовки специального формата) и переменные окружения [операционной системы].

    Различные фреймворки могут иметь классы и объекты с именами типа Request.

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

    Если данных очень много и их не просто надо читать, но для начала найти какие-то фрагменты (конкретные строки таблицы, поля объекта) по каким-то критериям, а потом, возможно, как-то обработать, то можно использовать СУБД.

    СУБД бывают встроенные и клиент-серврные.
    Пример встроенной это SQLITE, которая встроена в PHP как модуль расширения. Она также используется в iOS, Android, браузерах Firefox, Chrome и многих-многих других программах.

    Клиент-серверные чаще всего это MySQL (даже чаще чем надо), PostreSQL, MS SQL Server, Mongo DB, есть куча других.

    Серверная часть такой СУБД работает как отдельный сервер (программа), возможно на отдельном сервере (компьютере). Клиентская часть это модуль в среде исполнения (расшириние PHP, библиотека функций) или может условно отсутствовать, если СУБД имеет HTTP API. В этом случае клиентскую часть пишет прикладной программист на своем языке.

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

    В PHP-практике, наоборот, самый популярный сценарий это "один сервер - один клиент" и на одном компьютере. Так сложилось исторически.
    Так работают самые популярные CMS, так пишутся книги, проводятся курсы.

    Все операции на сервере происходят по необходимости, мы открываем соединение с БД по необходимости, принимаем запрос по необходимости, говорим что переменая имеет тип int unsigned исходя из необходимости.


    Нет какой-то абстрактной необходимости. Первопричина всего (на прикладном уровне) - входящий запрос. Вебсервер ожидает постоянно входящие запросы (слушает TCP-порт).
    Вот запрос пришел. Сервер согласно своим настройкам определяет, может ли он сам его обработать (например, "отдать статику") или он должен передать запрос другому обработчику по цепочке. Таким обработчиком может быть, например, PHP.
    Вебсервер запускает интерпретатор PHP и передает запрос ему.
    PHP определяет (в общем, по ссылке, которая есть в параметрах запроса), какой PHP-скрипт надо выполнить, ищет его и выполняет. Результат работы скрипта - HTTP-response (фактичеки это plain text, содержащий служебные заголовки, в т.ч. куки и тело с HTML / XML / JSON, etc. ) - отдается обратно вебсерверу, он возвращает его туда, откуда пришел запрос (на IP адрес и порт), часто в браузер.

    В других технологических стеках алгоритм обработки HTTP-запроса может отличаться от описанного. Как правило, чем больше он отличается, тем лучше этот стек, чем PHP (в смысле производительности).

    Мы, прикладные программисты, не опускаемся ниже HTTP-протокола. А используя фреймворки, даже HTTP можем не касаться, хотя знать и понимать его надо.
    Т.е. до всех этих TCP-портов и настроек сервера нам, как праивило, дела нет (пока все работает).
    Первое - удел скорее системных программистов, второе - сисадминов или модных ныне девопсов.

    Что почитать, чтобы лучше понять операции на бэке, которые не поймешь сразу ...


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

    Сейчас PHP все еще самый простой путь в back-end разработку. А раз вы упоминаете про int unsigned, то вам будет привычен и его Си-подобный синтаксис. Типа данных такого, однако, в PHP нет.
    Ответ написан
    2 комментария
  • Какие языки подходят для написания приложений под Android?

    gadfi
    @gadfi
    https://gamega.org
    Ruby пророчили стать убийцей Java, нодой заколачивали гвозди в гроб php .... доля java на рынке только растет, php тоже жив живехонек )
    нужно писать под android ─берите java, новый язык вы освоите на нужном уровне быстрее чем баги фреймворков, а учитывая большее комьюнити и подавно, не стоит заниматься ерундой ─ тот язык люблю, этот не люблю, есть инструменты которые подходят для решения задачи, есть которые не подходят а остальное лирика
    хочется сахара в java, добавьте kotlin
    Ответ написан
    3 комментария
  • Как быстро подтянуть свой уровень веб-разработчика, чтобы соотвествовать требованиям работодателей?

    iit
    @iit
    TeamLead + php/js разработчик
    Сейчас главный разработчик на огромном портале.
    Пришел туда так как пригласил однокурсник ( сейчас он тимлид ). Знал php на уровне недобыдлокодера. js - чуток Jquery. Html/css более-менее.

    Предыдущие разрабы свалили на более "вкусные вакансии" - у одного теперь своя студия а второй теперь заместитель директора одного крупного автомобильного портала.

    У нас двоих в итоге "модифицированная" этими злыми гениями UmiCMS устаревшей век назад версии. Задачь с дедлайном вчера на несколько листов a4. И огонь в глазах. Сначала это был ад. Костыли на костылях, контроль версий или бэкапы? нет не слышали! Хакерские атаки и 3 шелла. Постоянные попытки поднять внезапно упавший ночью сервак и сотни тысяч других радостных у ужасных ситуаций.

    Сейчас нас уже 5.

    Читая хабр, выполняя работу и постоянно развиваясь я вырос в неплохого backend разработчика. Научился классным штукам вроде git с push autodeploy, laravel, nodejs, composer, npm, bower, gulp, scss, haml. Подучил jQuery и создал для проекта 3 плагина, Angularjs, Backbone, Html5 bootstrap.

    Однокурсник вырос в тимлида и подучил UX и продвинулся как менеджер, создал проект который увеличил прибыль компании.

    После того как к нам пришли 2 дизайнера и один frontend ninja все стало просто замечательно.

    Итог - нужно найти компанию где согласятся взять джуна. Сейчас очень многие компании выращивают своих специалистов. Даже если нет наставника - не стоит отчаиваться. Опыт придет с работой. Главное упорно работать и применять мозг для сокращения объема работы, изучать технологии. Создавать для забавы мини-проекты.

    Единственный минус - первое время зп будет критически малой. Но это можно компенсировать фрилансом.
    Ответ написан
    2 комментария
  • Веб-разработка и выбор фреймворка/языка?

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

    Вам язык какой нравится больше? Чисто субъективно? На тот язык и фокусируйтесь.

    Что касается Django, - это довольно простой в использовании фреймворк. Простая структура приложений, очень простая и удобная ORM (я вот после Django ORM с трудом и отплёвываясь разбирался с SQLAlchemy). В Django 1.7 ещё и миграции из коробки встроены. В общем, непонятно, чем Django показалась вам такой сложной.

    По-моему, это вообще нормально. При изучении чего-то нового, иностранного языка или программной платформы, всегда наступает момент, когда трудно, утыкаешься носом в тупик и хоть брось. А вы не бросайте. Вопросы задавайте, коли что-то непонятно. Тогда и получится.
    Ответ написан
    Комментировать
  • Как понять принципы ООП?

    onqu
    @onqu
    weasy
    Чтобы понять принципы ООП, книги не требуются. Взгляните вокруг себя. Всмотритесь в любой объект в реальном мире, опишите его наиболее подробно (материал, размер, цвет, вес, плотность, составные части и т.д.), это будут его свойства. Опишите, что и каким образом этот объект умеет делать (включаться, складываться, кушать электроэнергию, взаимодействовать с другими объектами или окружающей средой и т.д.), это будут его методы. Подумайте, для чего используется этот объект, что ему нужно изменить или добавить, чтобы использовать в других условиях или целях, и на основе всех собранных знаний создать более удобный экземпляр, это будет наследование и полиморфизм. Теперь немедленно забудьте обо всем, используйте объект по назначению, это будет инкапсуляция. Дальше останутся только тонкости выбранного Вами языка, шаблоны, методологии и прочаяие ересь тренды.
    Ответ написан
    2 комментария
  • Какие должны быть скиллы и знания у junior/middle front-end разработчика?

    arutyunov
    @arutyunov
    Mooza.ru — Делаем сайты
    Лучше выставить как junior, потом блеснуть знаниями и получить некоторое повышение, чем опростоволосится на собеседовании и потратить их время (если они ищут middle, а не junior'а).
    Хотя в любом случае, всегда можно договориться.

    Из личного опыта: я до сих пор считаю себя junior'ом, потому что куда не ткнешься - везде куча новой информации и интересных решений. И вроде уже опыт есть какой-то за плечами, а вроде еще и многого не знаешь.
    Но если будешь работать в какой-то фирме, где есть более опытные разработчики - это будет весьма хорошим плюсом для тебя.
    Успехов!
    Ответ написан
    1 комментарий
  • Какой идеальный путь начинающего веб-разработчика?

    @nurtay1994
    У меня тоже такой случай! но я вот по такому порядку начал изучать:
    1. JavaScript
    2. PHP
    3. Python+ 4.Django
    Ответ написан
    Комментировать