代码之家  ›  专栏  ›  技术社区  ›  tanee

通过rvest获取web抓取中的电子邮件地址

  •  0
  • tanee  · 技术社区  · 6 年前

    您好,我试图通过使用rvest软件包在R语言中进行网页抓取来获取有关此网页的少量信息。我正在获取姓名和所有信息,但我无法获取电子邮件id,即。 info@brewhemia.co.uk . 如果我看到 读取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标记中,但我无法提取它。 This is the page source code

    1 回复  |  直到 6 年前
        1
  •  6
  •   amrrs    6 年前

    这里需要一个javascript引擎来处理js代码。幸运的是,R得到了 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"