Web Scraping bằng R
Timo Grossenbacher
Instructor
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
<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>
<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...
...
<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