Functional robot

 

What is a robot?

Oh, this term may be misleading, but it refers to Robotic process automation and it is just a piece of software!

Robot.JPG

What is web scraping?

For our Russian friends, here is the defintion from web.snauka.ru

Веб-скрейпинг (с англ. Web scraping – веб-выскабливание, веб-соскоб, веб-извлечение) – это технология анализа и извлечения веб-данных, используемая для технического компьютерного программного обеспечения в целях извлечения информации с веб-сайтов.

Как правило, это программное обеспечение моделирует исследование человеком сети Интернет и реализуется в низкоуровневых протоколах передачи гипертекста (HTTP). Также оно может быть встроено в полноценный веб-браузер, например, такой как Mozilla Firefox.

Метод опирается на взаимодействие с веб-страницами, которые создаются с использованием текстовых языков разметки (HTML и XHTML), и часто содержат множество полезных данных в текстовом виде. Тем не менее, большинство веб-страниц предназначены для человека с точки зрения конечного пользователя, а не для машины. По этой причине были созданы наборы инструментов для скрейпинга веб-контента.

Basically it is a very old and well known sort of art/craft

The functional approach

Now, we need to reengineer it into a streamlined process workflow. Canopy to the rescue!

Real world example

Finally, let’s have a peep at a couple of code lines.

    let Alice =unreliableElement "#table_1_filter"
    
    let input = elementWithin "input" Alice

    argv
    |> Array.iter (fun search ->

        input <<  search 

        let firstBob = unreliableElement "#table_1"
        sleep 2
        let body = first ".odd"
        let list = unreliableElementsWithin "td" body

The challenge

The above code is not trivial: it impersonates a user action and then reacts to a responsive table filter.
By key access definition, we get a unique result and 1 is odd in Math, as well as in the HTML topology of the web page. More generally you can prove the Odd-Order Theorem in Homotopy Type Theory applied to programming and computer science.

Advertisements