Duyệt HTML

Web Scraping bằng R

Timo Grossenbacher

Instructor

HTML giống như một cây

<html>
  <body>
    <div>
      <p>Đoạn văn thứ nhất.</p>
    </div>
    <div>
      Không phải đoạn văn thực sự,
      nhưng có một <a href="#">liên kết</a>.
    </div>
    <p>Một đoạn văn không có 
      thẻ div bao ngoài.</p>
  </body>
</html>

Cây HTML

Web Scraping bằng R

HTML giống như một cây

<html>
  <body>
    <div>
      <p>Đoạn văn thứ nhất.</p>
    </div>
    <div>
      Không phải đoạn văn thực sự,
      nhưng có một <a href="#">liên kết</a>.
    </div>
    <p>Một đoạn văn không có 
      thẻ div bao ngoài.</p>
  </body>
</html>

Cây HTML 2

Web Scraping bằng R

HTML giống như một cây

<html>
  <body>
    <div>
      <p>Đoạn văn thứ nhất.</p>
    </div>
    <div>
      Không phải đoạn văn thực sự,
      nhưng có một <a href="#">liên kết</a>.
    </div>
    <p>Một đoạn văn không có 
      thẻ div bao ngoài.</p>
  </body>
</html>

Cây HTML 3

Web Scraping bằng R

Duyệt cây với rvest

<html>
  <body>
    <div>
      <p>Đoạn văn thứ nhất.</p>
    </div>
    <div>
      Không phải đoạn văn thực sự,
      nhưng có một <a href="#">liên kết</a>.
    </div>
    <p>Một đoạn văn không có 
      thẻ div bao ngoài.</p>
  </body>
</html>
html <- read_html(html_document)

html_children(html)
{xml_nodeset (1)}
[1] <body>\n    <div>\n  < ...
html %>% html_children()
html %>% html_children() %>% html_text()
[1] "\n    \n      The first paragraph.\n   
\n    \n      Not an actual paragraph, \n      
but with a link.\n    \n    A paragraph ...
Web Scraping bằng R

Duyệt tới nút bằng bộ chọn

<html>
  <body>
    <div>
      <p>Đoạn văn thứ nhất.</p>
    </div>
    <div>
      Không phải đoạn văn thực sự,
      nhưng có một <a href="#">liên kết</a>.
    </div>
    <p>Một đoạn văn không có 
      thẻ div bao ngoài.</p>
  </body>
</html>
html <- read_html(html_document)

html %>% html_element('body')
{xml_nodeset (1)}
[1] <body>\n    <div>\n  < ...
html %>% html_elements('div p')
{xml_nodeset (1)}
[1] <p>Đoạn văn thứ nhất.</p>
Web Scraping bằng R

Duyệt tới nút bằng bộ chọn

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

Trích xuất thuộc tính

html %>%
    html_element('a') %>%
    html_attr('href')
[1] #
html %>%
    html_element('a') %>%
    html_attrs()
href 
 "#"
Web Scraping bằng R

Bắt đầu thôi!

Web Scraping bằng R

Preparing Video For Download...