如何从下载的html文件中获取电子邮件地址?

时间:2017-06-20 18:15:58

标签: html web-scraping html-parsing

我试图通过R。

抓取心理治疗师档案的网页

我的目标是获取显示为链接的治疗师的电子邮件。 页面示例:http://academyofct.site-ym.com/members/?id=44410428

浏览器将此段代码显示为:

<a href="mailto:abonfil@cogbtherapy.com">abonfil@cogbtherapy.com</a>

但是当我下载页面(通过Ctrl + S)进行解析并获取电子邮件地址时,这部分代码将从html文件中消失。

任何人都可以解释一下,这是一个什么问题?如何获取提取电子邮件的完整网页?

谢谢!

1 个答案:

答案 0 :(得分:0)

该元素正从客户端JavaScript添加到DOM;看到这部分来源:

<script language="JavaScript"><!--
    var strEmail = CharShiftDecrypt('ghutlor@iumhznkxgvE.ius', 6, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789');
    document.write('<a href="mailto:'+ strEmail + '">'+ strEmail + '</a><br>');
//--></script>

获得该内容的唯一方法是首先按照浏览器的方式执行JavaScript。因此,除非您使用的是执行该JavaScript的处理器,否则您将无法抓取它。

您需要做的是使用Selenium和/或WebDriver,或使用基于PhantomJS或类似的东西。这些都会导致无头浏览器引擎运行,它会执行JavaScript并为您提供与浏览器中自己导航到站点相同的DOM。

以下是一些可用选项的操作指南: