class WebScrapper

Public Class Methods

scrapper() click to toggle source
# File lib/web-scrapper-gems.rb, line 8
def self.scrapper
    alphabets_list = ('A'..'Z').to_a.unshift('NUMBER')
    alphabets_list.each do |alphabet|
        open_set_website = URI.open("https://www.set.or.th/set/commonslookup.do?language=th&country=TH&prefix=#{alphabet}")
        get_link = Nokogiri::HTML(open_set_website)

        get_href = get_link.css("td a")
        get_href.each do |each_href|
            h = each_href.attributes["href"].value.gsub("companyprofile", "companyhighlight")
            get_h = "https://www.set.or.th#{h}"
            open_each_href = URI.open(get_h)
            html = Nokogiri::HTML(open_each_href)
            name_company = html.css("h3").text
            begin
                td_list = [5, 4, 3, 2]
                list_assets_value = Array.new
                td_list.each do |i|
                    assets_value = html.css("td[#{i}]").first.text
                    list_assets_value.push(assets_value)
                end 
                list_assets_value_2 = Array.new
                list_assets_value.each do |x|
                    list_assets_value_2.push(x.gsub("\u00A0", ''))
                end
                empty_str = list_assets_value_2[0].gsub("\u00A0", '')
                if list_assets_value_2[0] != ''
                    assets_value = list_assets_value_2[0]
                elsif list_assets_value_2[0] == nil
                    assets_value = list_assets_value_2[1]
                else
                    if empty_str == ''
                        assets_value = "don't have assets value."
                    end
                end
                if list_assets_value_2.all?('')
                    assets_value = "don't have assets value."
                end
            rescue => exception
                assets_value = "don't have assets value."
            end
            puts "#{name_company} : #{assets_value}"
        end
    end
end