Kombinator CSS

Web Scraping di R

Timo Grossenbacher

Instructor

Ada empat jenis kombinator

Struktur: h2#someid {space|>|+|~} .someclass

space: Kombinator keturunan

>: Kombinator anak

+: Kombinator saudara berdekatan

~: Kombinator saudara umum

Web Scraping di R

Kombinator keturunan dan anak

<html>
  <body>
    <div class = 'first'>
      <a>Sebuah tautan.</a>
      <p>Paragraf pertama dengan 
        <a>tautan lain</a>.
      </p>
    </div>
    <div>
      Bukan paragraf sebenarnya, 
      tetapi ada <a href="#">tautan</a>.
    </div>
  </body>
</html>
html %>% 
    html_elements('div.first a')
{xml_nodeset (2)}
[1] <a>Sebuah tautan.</a>
[2] <a>tautan lain</a>
html %>% 
    html_elements('div.first > a')
{xml_nodeset (1)}
[1] <a>Sebuah tautan.</a>
Web Scraping di R

Kombinator saudara

<html>
  <body>
    <div class = 'first'>
      <a>Sebuah tautan.</a>
      <p>Paragraf pertama dengan 
        <a>tautan lain</a>.
      </p>
    </div>
    <div>
      Bukan paragraf sebenarnya, 
      tetapi ada <a href="#">tautan</a>.
    </div>
    <p>Sebuah paragraf.</p>
  </body>
</html>
html %>% html_elements('div.first + div')
{xml_nodeset (1)}
[1] <div>\n Bukan paragraf...
html %>% html_elements('div.first ~ div')
{xml_nodeset (1)}
[1] <div>\n Bukan paragraf...
html %>% html_elements('div.first ~ *')
{xml_nodeset (2)}
[1] <div>\n Bukan paragraf... [2] <p>Sebuah paragraf...
Web Scraping di R

Kapan kombinator berguna

...
    <div id = 'start'>
      <h1 class = 'first'>Pertama</h1>
    </div>
    <div id = 'end'>
      <p class = 'text1'>Beberapa teks.</p>
      <p class = 'text2'>Teks lagi.</p>
    </div>
...
html %>% html_elements('.text2')
{xml_nodeset (1)}
[1] <p class="text2">Teks lagi.</p>
...
    <div>
      <h1>Pertama</h1>
    </div>
    <div>
      <p>Beberapa teks.</p>
      <p>Teks lagi.</p>
    </div>
...
html %>% html_elements('p + p')
{xml_nodeset (1)}
[1] <p>Teks lagi.</p>
Web Scraping di R

Ayo berlatih!

Web Scraping di R

Preparing Video For Download...