Bộ kết hợp CSS

Web Scraping bằng R

Timo Grossenbacher

Instructor

Có bốn bộ kết hợp khác nhau

Cấu trúc: h2#someid {space|>|+|~} .someclass

space: Bộ kết hợp hậu duệ

>: Bộ kết hợp con trực tiếp

+: Bộ kết hợp anh em liền kề

~: Bộ kết hợp anh em tổng quát

Web Scraping bằng R

Bộ kết hợp hậu duệ và con

<html>
  <body>
    <div class = 'first'>
      <a>Một liên kết.</a>
      <p>Đoạn đầu tiên với 
        <a>liên kết khác</a>.
      </p>
    </div>
    <div>
      Không phải đoạn văn thực sự, 
      nhưng có <a href="#">liên kết</a>.
    </div>
  </body>
</html>
html %>% 
    html_elements('div.first a')
{xml_nodeset (2)}
[1] <a>Một liên kết.</a>
[2] <a>liên kết khác</a>
html %>% 
    html_elements('div.first > a')
{xml_nodeset (1)}
[1] <a>Một liên kết.</a>
Web Scraping bằng R

Bộ kết hợp anh em

<html>
  <body>
    <div class = 'first'>
      <a>Một liên kết.</a>
      <p>Đoạn đầu tiên với 
        <a>liên kết khác</a>.
      </p>
    </div>
    <div>
      Không phải đoạn văn thực sự, 
      nhưng có <a href="#">liên kết</a>.
    </div>
    <p>Một đoạn văn.</p>
  </body>
</html>
html %>% html_elements('div.first + div')
{xml_nodeset (1)}
[1] <div>\n Không phải đoạn thực...
html %>% html_elements('div.first ~ div')
{xml_nodeset (1)}
[1] <div>\n Không phải đoạn thực...
html %>% html_elements('div.first ~ *')
{xml_nodeset (2)}
[1] <div>\n Không phải đoạn thực... [2] <p>Một đoạn văn...
Web Scraping bằng R

Khi bộ kết hợp hữu ích

...
    <div id = 'start'>
      <h1 class = 'first'>Đầu tiên</h1>
    </div>
    <div id = 'end'>
      <p class = 'text1'>Một số văn bản.</p>
      <p class = 'text2'>Thêm văn bản.</p>
    </div>
...
html %>% html_elements('.text2')
{xml_nodeset (1)}
[1] <p class="text2">Thêm văn bản.</p>
...
    <div>
      <h1>Đầu tiên</h1>
    </div>
    <div>
      <p>Một số văn bản.</p>
      <p>Thêm văn bản.</p>
    </div>
...
html %>% html_elements('p + p')
{xml_nodeset (1)}
[1] <p>Thêm văn bản.</p>
Web Scraping bằng R

Hãy thực hành!

Web Scraping bằng R

Preparing Video For Download...