nodejs抓取动态网页(Selenium爬动态网页的小技巧及场景介绍-苏州安嘉)

优采云 发布时间: 2022-04-15 12:08

  nodejs抓取动态网页(Selenium爬动态网页的小技巧及场景介绍-苏州安嘉)

  /1 简介/

  Selenium 是用于 Web 应用程序测试的工具。Selenium 测试直接在浏览器中运行,就像真实用户一样,是爬取复杂动态网页的必备工具。支持的浏览器包括 IE、Mozilla Firefox、Safari、Google Chrome、Opera 等。

  这里有两个场景向你介绍 Selenium 爬取动态网页的技巧。

  /2 场景一:替换日期控制值/

  以12306网站为例,如下图,按照正常的方法,我们首先需要定位到时间元素,然后调用selenium的click()方法进行点击。

  

  这种操作也是可以的。但是,过了一会儿,当我们再次运行自动化代码时,我们发现该功能无法正常工作。因为日历控件的布局会随着日期的变化而变化,操作起来很麻烦。

  我们先来看看日期框的元素,如下图所示:

  

  专注于价值='文本'。此属性值可以通过 JavaScript 更改。三行代码就可以解决这个问题,如下图所示:

  

  第一行是要输入的日期,第二行是JavaScript代码,“documen.getElementById”通过HTML的“id”定位元素,通过改变元素的“值”来改变值。

  效果演示如下:

  /3 场景二:动态网页自动下拉/

  一些复杂的动态网页需要下拉才能完整展示元素,比如腾讯视频首页,如下图所示:

  

  如果我们需要自动爬取这样的动态网页,我们也可以实现JavaScript的方法来实现。5行代码,我们就可以连续滑动网页,显示所有动态网页元素。代码如下图所示:

  

  这里小编采用的一步一步下拉的方式,每次滚动1/10,“window.scrollTo”是向下滑动的命令,“document.body.clientHeight”是整个窗口的高度, “h=(i/1 0)” 是每次滑动的高度。

  效果演示如下:

  /4。结论/

  将 JavaScript 应用到 selenium 可以帮助我们解决很多问题。这里有两个小例子,只是为了提供线索。希望以后遇到 selenium 无法解决的问题时,可以考虑在 JavaScript 中寻找突破口。

  欢迎大家积极尝试,消磨在家的无聊时间。本文涉及的代码已上传至github地址,后台回复“selenium”二字即可获取代码。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线