哪个phantomjs或webdriver更容易/更适合刮我的linkedin帐户?

时间:2013-12-04 01:45:34

标签: selenium webdriver web-scraping phantomjs

我个人需要抓取/自动访问我的linkedin帐户(复制我的联系人等),显然该网站太难以使用wget,urllib等。

无法使用LinkedIn API,因为它恰好限制了我感兴趣的一些用例。

我精通Python和Javascript。我过去曾经使用过webdriver进行小型抓取项目,但是很久以前,重新学习它与学习幻像有相似的开销。

我不打算运行任何类型的基于群集的高容量抓取操作,这一切都将在我的本地计算机上以适当的速率限制运行,以免惹恼掉。这主要是为了个人便利,自动化等。

我听说过关于幻影的好消息,但是我想知道它对webdriver有什么好处(反之亦然)。我猜phantomjs是“无头”的,这意味着它实际上不需要运行浏览器,我想这样可以更容易地编写命令行脚本或消耗更少的资源或其他一些我希望向我解释的属性! / p>

我可以理解webscraping程序应该是javascript的论点,因为它更像是一种浏览器本地语言,但是很想知道这是否是人们使用phantomjs(或其中一个表兄弟)的主要原因

1 个答案:

答案 0 :(得分:0)

我已经使用Selenium和Phantom / Casper来完成抓取工作,并且还在功能测试工作中使用它们。如果我打算按你描述的那样做,我会选择CasperJS。我会选择CasperJS而不是PhantomJS,因为:

  • 更容易描述步骤流程。 (直接使用PhantomJS时必须处理所有异步回调。)
  • 可以交换SlimerJS以使其使用Gecko(即Firefox),而无需额外的努力。 (我不认为这对LinkedIn很重要,但PhantomJS 1.9.x基于一个相当古老的WebKit,因此当网站使用较新的HTML5功能时,它有时会失败。)

选择CasperJS而不是Selenium的原因:

  • 步骤流程很容易在CasperJS中描述。
  • 硒感觉更像是努力工作。这可能是因为PHP是我首选的粘合语言,而且自从Selenium 2.0以来,PHP一直被视为局外人。但它的理念是只允许用户使用键盘和鼠标在浏览器中执行操作。这有时不够灵活。
  • 每次Firefox更新时,
  • Selenium会中断,我必须安装最新版本。刺激。 (PhantomJS和SlimerJS在内部都有自己的浏览器,因此完全独立于桌面浏览器的系统更新。)

由于你精通Python和JavaScript,我认为以上都不是杀手锏的原因。你选择哪个并不重要,努力将大致相同。