Įvadas į žiniatinklio naudojimą naudojant R

Su elektroninės prekybos bumu verslas prisijungė prie interneto. Klientai taip pat ieško produktų internete. Skirtingai nuo internetinės rinkos, klientas realiuoju laiku gali palyginti skirtingose ​​vietose esančio produkto kainą.

Todėl konkurencinga kaina yra kažkas, kas tapo svarbiausia verslo strategijos dalimi.

Kad jūsų produktų kainos būtų konkurencingos ir patrauklios, turite stebėti ir sekti konkurentų nustatytas kainas. Jei žinote, kokia yra jūsų konkurentų kainų strategija, galite atitinkamai suderinti savo kainų strategiją, kad gautumėte pranašumą prieš jas.

Taigi kainų stebėjimas tapo gyvybiškai svarbia e. Prekybos verslo vykdymo proceso dalimi.

Jums gali kilti klausimas, kaip surinkti duomenis palyginti kainas.

3 populiariausi būdai gauti duomenis, reikalingus kainų palyginimui

1. Prekybininkų kanalai

Kaip jūs galbūt žinote, internete yra keletas kainų palyginimo svetainių. Šios svetainės supranta savotiškai su verslu, kuriame duomenis gauna tiesiogiai iš jų ir kurias naudoja kainų palyginimui.

Šios įmonės sukuria API arba naudoja FTP duomenims pateikti. Paprastai kainų palyginimo svetainė yra finansiškai perspektyvi persiuntimo komisija.

2. Produktų sklaidos kanalai iš trečiųjų šalių API

Kita vertus, yra paslaugų, kurios siūlo el. Prekybos duomenis per API. Kai naudojama tokia paslauga, trečioji šalis moka už duomenų kiekį.

3. Žiniatinklio grandymas

Žiniatinklio nuskaitymas yra vienas patikimiausių ir patikimiausių būdų gauti interneto duomenis iš interneto. Jis vis dažniau naudojamas atliekant kainų tyrimus, nes tai yra efektyvus būdas gauti produkto duomenis iš elektroninės prekybos svetainių.

Gali būti, kad neturite prieigos prie pirmosios ir antrosios parinkčių. Taigi žiniatinklio kasymas gali jums padėti. Galite naudoti žiniatinklio duomenų rinkimą, kad pasinaudotumėte duomenų galia, kad jūsų verslas būtų konkurencingas.

Žiniatinklio grandymas gali būti naudojamas norint gauti dabartines rinkos scenarijaus kainas ir apskritai el. Prekybą. Norėdami gauti duomenis iš elektroninės prekybos svetainės, naudosime žiniatinklio grandymą. Šiame tinklaraštyje sužinosite, kaip subraižyti visų kategorijų „Amazon“ produktų pavadinimus ir kainas pagal konkretų prekės ženklą.

Periodiškai išgaunant duomenis iš „Amazon“, galite lengviau sekti kainų rinkos tendencijas ir atitinkamai nustatyti kainas.

Turinys

  1. Žiniatinklio grandymas kainų palyginimui
  2. Žiniatinklio kasymas R
  3. Įgyvendinimas
  4. Pabaiga

1. Žiniatinklio grandymas kainų palyginimui

Kaip sako rinkos išmintis, kaina yra viskas. Pirkėjai sprendimus dėl pirkimo priima atsižvelgdami į kainą. Produkto kokybės supratimą jie grindžia kaina. Trumpai tariant, kaina skatina klientus, taigi ir rinką.

Todėl kainų palyginimo svetainės yra labai paklausios. Klientai gali lengvai naršyti po visą rinką, žiūrėdami to paties produkto kainas pagal visus prekės ženklus. Šios kainų palyginimo svetainės išgauna to paties produkto kainą iš skirtingų svetainių.

Kainų palyginimo svetainėse kartu su kaina surašomi tokie duomenys kaip produkto aprašymas, techninės specifikacijos ir funkcijos. Jie lyginamuoju būdu projektuoja visą informacijos spektrą viename puslapyje.

Tai atsako į klausimą, kurį būsimas pirkėjas uždavė ieškodamas. Dabar potencialus pirkėjas gali palyginti produktus ir jų kainas, taip pat informaciją, pvz., Savybes, mokėjimo ir pristatymo galimybes, kad galėtų nustatyti geriausią įmanomą sandorį.

Kainodaros optimizavimas daro įtaką verslui ta prasme, kad tokie metodai gali padidinti pelno maržą 10%.

El. Prekyba yra susijusi su konkurencinga kainodara, ji išplito ir kitose verslo srityse. Paimkime kelionių atvejį. Dabar net su kelionėmis susijusios svetainės realiuoju laiku surenka kainą iš oro linijų svetainių , kad būtų galima palyginti skirtingų oro linijų bendrovių kainas.

Vienintelis iššūkis yra atnaujinti duomenis realiuoju laiku ir nuolat sekti kiekvieną sekundę, nes šaltinio svetainėse kainos nuolat keičiasi. Kainų palyginimo svetainėse kainai atnaujinti naudojamos „Cron“ užduotys arba peržiūros metu. Tačiau tai priklausys nuo svetainės savininko konfigūracijos.

Čia jums gali padėti šis tinklaraštis - galėsite parengti skrebinimo scenarijų, kurį galėsite pritaikyti pagal savo poreikius. Produktų sklaidos kanalus, vaizdus, ​​kainą ir visą kitą susijusią informaciją apie produktą galėsite išgauti iš įvairių svetainių. Tai galite sukurti savo galingą duomenų bazę kainų palyginimo svetainei.

2. Žiniatinklio grandymas R

Kainų palyginimas tampa sudėtingas, nes gauti žiniatinklio duomenų nėra taip lengva - turinio platinimui yra tokių technologijų kaip HTML, XML ir JSON.

Taigi, norėdami gauti reikalingus duomenis, turite efektyviai naršyti naudodamiesi šiomis skirtingomis technologijomis. R gali padėti pasiekti duomenis, saugomus šiose technologijose. Tačiau prieš pradedant tai reikia šiek tiek nuodugniai suprasti R.

Kas yra R?

Žiniatinklio grandymas yra išplėstinė užduotis, kurią atlieka nedaug žmonių. Žiniatinklio nuskaitymas naudojant R yra tikrai techninis ir pažangus programavimas. Tinkamas R supratimas yra būtinas tokiu būdu žiniatinklio grandymui.

Pirmiausia R yra statistinio skaičiavimo ir grafikos kalba. Statistikai ir duomenų gavėjai daug naudoja R dėl savo besivystančios statistinės programinės įrangos ir dėmesio duomenų analizei.

Viena iš priežasčių, kodėl R yra tokia mėgstamiausia tarp šių žmonių, yra siužetų, kuriuos galima parengti, kokybė, įskaitant matematinius simbolius ir formules, kur tik reikia.

R yra nuostabi, nes siūlo daugybę funkcijų ir paketų, kurie gali atlikti duomenų gavybos užduotis.

„rvest“, „RCrawler“ ir kt. yra R paketai, naudojami duomenų rinkimo procesams.

Šiame segmente pamatysime, kokių įrankių reikia norint dirbti su „R“, norint atlikti žiniatinklio grandymą. Tai pamatysime naudodami „Amazon“ svetainės naudojimo atvejį, iš kurio bandysime gauti produkto duomenis ir išsaugoti JSON forma.

Reikalavimai

Šioje naudojimo atveju, žinios R yra labai svarbus, ir aš esu darant prielaidą, kad jūs turite bendrą supratimą apie mokslinių tyrimų . Turėtumėte žinoti bent apie vieną R sąsają, pvz., „RStudio“. Bazinė R diegimo sąsaja yra tinkama.

Jei nežinote apie R ir kitas susijusias sąsajas, turėtumėte pereiti šią pamoką.

Dabar supraskime, kaip bus įdiegti paketai, kuriuos naudosime.

Pakuotės:

1. rvest

Hadley'us Wickhamas sukūrė „Rvest“ paketą, skirtą žiniatinkliui gramdyti, o „Rvest“ yra naudinga išgaunant reikiamą informaciją iš tinklalapių.

Along with this, you also need to install the selectr and ‘xml2’ packages.

Installation steps:

install.packages(‘selectr’)
install.packages(‘xml2’)
install.packages(‘rvest’)

rvest contains the basic web scraping functions, which are quite effective. Using the following functions, we will try to extract the data from web sites.

  • read_html(url) : scrape HTML content from a given URL
  • html_nodes(): identifies HTML wrappers.
  • html_nodes(“.class”): calls node based on CSS class
  • html_nodes(“#id”): calls node based on id
  • html_nodes(xpath=”xpath”): calls node based on xpath (we’ll cover this later)
  • html_attrs(): identifies attributes (useful for debugging)
  • html_table(): turns HTML tables into data frames
  • html_text(): strips the HTML tags and extracts only the text

2. stringr

stringr comes into play when you think of tasks related to data cleaning and preparation.

There are four essential sets of functions in stringr:

  • stringr functions are useful because they enable you to work around the individual characters within the strings in character vectors
  • there are whitespace tools which can be used to add, remove, and manipulate whitespace
  • there are locale sensitive operations whose operations will differ from locale to locale
  • there are pattern matching functions. These functions recognize four parts of pattern description. Regular expressions are the standard one but there are other tools as well

Installation

install.packages(‘stringr’)

3. jsonlite

What makes the jsonline package useful is that it is a JSON parser/generator which is optimized for the web.

It is vital because it enables an effective mapping between JSON data and the crucial R data types. Using this, we are able to convert between R objects and JSON without loss of type or information, and without the need for any manual data wrangling.

This works really well for interacting with web APIs, or if you want to create ways through which data can travel in and out of R using JSON.

Installation

install.packages(‘jsonlite’)

Before we jump-start into it, let’s see how it works:

It should be clear at the outset that each website is different, because the coding that goes into a website is different.

Web scraping is the technique of identifying and using these patterns of coding to extract the data you need. Your browser makes the website available to you from HTML. Web scraping is simply about parsing the HTML made available to you from your browser.

Web scraping has a set process that works like this, generally:

  • Access a page from R
  • Instruct R where to “look” on the page
  • Convert data in a usable format within R using the rvest package

Now let’s go to implementation to understand it better.

3. Implementation

Let’s implement it and see how it works. We will scrape the Amazon website for the price comparison of a product called “One Plus 6”, a mobile phone.

You can see it here.

Step 1: Loading the packages we need

We need to be in the console, at R command prompt to start the process. Once we are there, we need to load the packages required as shown below:

#loading the package:> library(xml2)> library(rvest)> library(stringr)

Step 2: Reading the HTML content from Amazon

#Specifying the url for desired website to be scrappedurl <- ‘//www.amazon.in/OnePlus-Mirror-Black-64GB-Memory/dp/B0756Z43QS?tag=googinhydr18418-21&tag=googinkenshoo-21&ascsubtag=aee9a916-6acd-4409-92ca-3bdbeb549f80’
#Reading the html content from Amazonwebpage <- read_html(url)

In this code, we read the HTML content from the given URL, and assign that HTML into the webpage variable.

Step 3: Scrape product details from Amazon

Now, as the next step, we will extract the following information from the website:

Title: The title of the product.

Price: The price of the product.

Description: The description of the product.

Rating: The user rating of the product.

Size: The size of the product.

Color: The color of the product.

This screenshot shows how these fields are arranged.

Next, we will make use of HTML tags, like the title of the product and price, for extracting data using Inspect Element.

In order to find out the class of the HTML tag, use the following steps:

=> go to chrome browser => go to this URL => right click => inspect element

NOTE: If you are not using the Chrome browser, check out this article.

Based on CSS selectors such as class and id, we will scrape the data from the HTML. To find the CSS class for the product title, we need to right-click on title and select “Inspect” or “Inspect Element”.

As you can see below, I extracted the title of the product with the help of html_nodes in which I passed the id of the title — h1#title — and webpage which had stored HTML content.

I could also get the title text using html_text and print the text of the title with the help of the head () function.

#scrape title of the product> title_html  title  head(title)

The output is shown below:

We could get the title of the product using spaces and \n.

The next step would be to remove spaces and new line with the help of the str_replace_all() function in the stringr library.

# remove all space and new linesstr_replace_all(title, “[\r\n]” , “”)

Output:

Now we will need to extract the other related information of the product following the same process.

Price of the product:

# scrape the price of the product> price_html  price <- html_text(price_html)
# remove spaces and new line> str_replace_all(title, “[\r\n]” , “”)
# print price value> head(price)

Output:

Product description:

# scrape product description> desc_html  desc <- html_text(desc_html)
# replace new lines and spaces> desc  desc  head(desc)

Output:

Rating of the product:

# scrape product rating > rate_html  rate <- html_text(rate_html)
# remove spaces and newlines and tabs > rate  rate <- str_trim(rate)
# print rating of the product> head(rate)

Output:

Size of the product:

# Scrape size of the product> size_html  size_html  size <- html_text(size_html)
# remove tab from text> size <- str_trim(size)
# Print product size> head(size)

Output:

Color of the product:

# Scrape product color> color_html  color_html  color <- html_text(color_html)
# remove tabs from text> color <- str_trim(color)
# print product color> head(color)

Output:

Step 4: We have successfully extracted data from all the fields which can be used to compare the product information from another site.

Let’s compile and combine them to work out a dataframe and inspect its structure.

#Combining all the lists to form a data frameproduct_data <- data.frame(Title = title, Price = price,Description = desc, Rating = rate, Size = size, Color = color)
#Structure of the data framestr(product_data)

Output:

In this output we can see all the scraped data in the data frames.

Step 5: Store data in JSON format:

As the data is collected, we can carry out different tasks on it such as compare, analyze, and arrive at business insights about it. Based on this data, we can think of training machine learning models over this.

Data would be stored in JSON format for further process.

Follow the given code and get the JSON result.

# Include ‘jsonlite’ library to convert in JSON form.> library(jsonlite)
# convert dataframe into JSON format> json_data <- toJSON(product_data)
# print output> cat(json_data)

In the code above, I have included jsonlite library for using the toJSON() function to convert the dataframe object into JSON form.

At the end of the process, we have stored data in JSON format and printed it.

It is possible to store data in a csv file also or in the database for further processing, if we wish.

Output:

Following this practical example, you can also extract the relevant data for the same from product from //www.oneplus.in/6 and compare with Amazon to work out the fair value of the product. In the same way, you can use the data to compare it with other websites.

4. End note

As you can see, R can give you great leverage in scraping data from different websites. With this practical illustration of how R can be used, you can now explore it on your own and extract product data from Amazon or any other e-commerce website.

Atsargiai jums pasakysiu: tam tikrose svetainėse taikoma kovos su įbrėžimais politika . Jei persistengsite, būsite užblokuotas ir vietoj produkto informacijos pradėsite matyti „captchas“. Be abejo, taip pat galite išmokti dirbti su „captcha“ naudodamiesi skirtingomis prieinamomis paslaugomis. Tačiau jūs turite suprasti, ar teisingai tvarkote duomenis ir ką darote su nukopijuotais duomenimis.

Nedvejodami atsiųskite man savo atsiliepimus ir pasiūlymus dėl šio įrašo!