通过 rvest 在网络抓取中获取电子邮件地址
Getting email address in web scraping through rvest
您好,我正在尝试通过使用包 rvest 以 R 语言进行网络抓取来获取有关此网页的少量信息。我正在获取姓名和所有信息,但我无法获取电子邮件 ID,即 info@brewhemia.co.uk。如果我在 read_html 中看到文本,我在 html 解析文本中看不到电子邮件 ID。有人可以帮忙吗?我是网络抓取的新手。但是我懂R语言。
link <- 'https://food.list.co.uk/place/22191-brewhemia-edinburgh/'
page <- read_html(link)
name_html <- html_nodes(page,'.placeHeading')
business_adr <- html_text(adr_html)
tel_html <- html_nodes(page,'.value')
business_tel <- html_text(tel_html)
电子邮件 ID 在 'a' html 标签中,但我无法提取它。
这里需要一个javascript引擎来处理js代码。幸运的是,R 有 V8
.
安装 V8
包后修改您的代码:
library(rvest)
library(V8)
link <- 'https://food.list.co.uk/place/22191-brewhemia-edinburgh/'
page <- read_html(link)
name_html <- html_nodes(page,'.placeHeading')
business_adr <- html_text(adr_html)
tel_html <- html_nodes(page,'.value')
business_tel <- html_text(tel_html)
emailjs <- page %>% html_nodes('li') %>% html_nodes('script') %>% html_text()
ct <- v8()
read_html(ct$eval(gsub('document.write','',emailjs))) %>% html_text()
输出:
> read_html(ct$eval(gsub('document.write','',emailjs))) %>% html_text()
[1] "info@brewhemia.co.uk"
您好,我正在尝试通过使用包 rvest 以 R 语言进行网络抓取来获取有关此网页的少量信息。我正在获取姓名和所有信息,但我无法获取电子邮件 ID,即 info@brewhemia.co.uk。如果我在 read_html 中看到文本,我在 html 解析文本中看不到电子邮件 ID。有人可以帮忙吗?我是网络抓取的新手。但是我懂R语言。
link <- 'https://food.list.co.uk/place/22191-brewhemia-edinburgh/'
page <- read_html(link)
name_html <- html_nodes(page,'.placeHeading')
business_adr <- html_text(adr_html)
tel_html <- html_nodes(page,'.value')
business_tel <- html_text(tel_html)
电子邮件 ID 在 'a' html 标签中,但我无法提取它。
这里需要一个javascript引擎来处理js代码。幸运的是,R 有 V8
.
安装 V8
包后修改您的代码:
library(rvest)
library(V8)
link <- 'https://food.list.co.uk/place/22191-brewhemia-edinburgh/'
page <- read_html(link)
name_html <- html_nodes(page,'.placeHeading')
business_adr <- html_text(adr_html)
tel_html <- html_nodes(page,'.value')
business_tel <- html_text(tel_html)
emailjs <- page %>% html_nodes('li') %>% html_nodes('script') %>% html_text()
ct <- v8()
read_html(ct$eval(gsub('document.write','',emailjs))) %>% html_text()
输出:
> read_html(ct$eval(gsub('document.write','',emailjs))) %>% html_text()
[1] "info@brewhemia.co.uk"