我正在使用 R 編程語言。我正在嘗試網頁抓取頁面(例如“my_website.html”) - 網頁看起來像這樣:

此頁面的源代碼如下所示:
<div class="one_third">
<strong>my_name_1.</strong><br />
address_1<br />
city_1<br />
phone_1<br />
<a href="website1.com" target="_blank">Website</a>
</div>
<div class="one_third">
<strong>my_name_2</strong><br />
address_2<br />
city_2<br />
phone_2<br />
<a href="website2.com">Website</a>
</div>
<div class="one_third last">
<strong>my_name_2</strong><br />
address_2,<br />
city_2<br />
phone_2
</div>
<div class="clear"></div>
<div class="hr hr1" style='margin:20px !important;'></div>
<div class="one_third">
<strong>my_name_3</strong><br />
address_3<br />
city_3<br />
phone_3<br />
<a href="website3.com" target="_blank">Website</a>
</div>
<div class="one_third">
<strong>my_name_4</strong><br />
address_4,<br />
city_4<br />
phone_4
</div>
我正在嘗試將以下資訊提取到資料框中 - 這看起來像這樣:
name address city phone
1 my_name_1 address_1 city_1 phone_1
2 my_name_2 address_2 city_2 phone_2
3 my_name_3 address_3 city_3 phone_3
4 my_name_4 address_4 city_4 phone_4
我找到了本教程(https://www.dataquest.io/blog/web-scraping-in-r-rvest/)并嘗試這樣做:
library(rvest)
simple <- read_html("my_website.html")
然后,我嘗試了以下命令的不同組合來嘗試提取姓名、地址、城市和電話號碼:
simple %>%
html_nodes("strong") %>%
html_text()
simple %>%
html_nodes("bold") %>%
html_text()
simple %>%
html_nodes("br") %>%
html_text()
simple %>%
html_nodes(".br") %>%
html_text()
simple %>%
html_nodes("p")
但到目前為止,這些都不起作用 - 但地址沒有拉動。
有人可以告訴我我做錯了什么嗎?
謝謝!
uj5u.com熱心網友回復:
這是一個良好的開端:
library(rvest)
url<-"mywebsite.html"
page <-read_html(url)
#find the div tab of class=one_third
b = page %>% html_nodes("div.one_third")
listanswer <- b %>% html_text() %>% strsplit("\\n")
“listanswer” 每個條目都有一個向量。現在是 had 部分,每個地址可以有 1 到 3 個名稱元素,最后可能有也可能沒有電話號碼或網站。我想你可以通過這個向量串列找出城市,包含“溫哥華”的元素之前是街道地址,之后的元素是街道地址,包含“P:”是電話,地址之前的所有內容都是名稱。
祝你好運。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/496235.html
