获取网页class_「Selenium实战」之二获取页面链接

在上一篇章,我们介绍了如何通过selenium打开首页。这一章,我们将介绍如何访问头条中每一个链接。

上一章讲到,我们获取了驱动器driver,并用driver访问了首页。

接下来,需要通过HTML的DOM结构获取到新闻列表的根节点。在讲如何获取根节点之前,我们先简单介绍一下网页的显示原理。

  • 网页是由浏览器生成,生成网页内容的来源有三部分:HTML提供的网页结构、Javascript提供的动态网页结构、数据内容。
  • 浏览器生成的DOM结构是一个树形的结构,每一个节点代表网页的一个元素,这个元素有标签、属性、值三部分组成。 标签定义了这个节点的类型,比如按钮、文字、超链接、图片、视频等;属性定义了元素的各种特性,比如高度、宽度、颜色、边框等等;值定了元素的内容。
  • JavaScript提供了树形结构中某一部分节点的动态生成功能,用于用户与网页交互过程动态的显示不同的网页内容,例如点击下拉框显示下拉列表,选择省份显示省份的所有城市等。JavaScript提供的网页结构与HTML提供的网页结构并没有多少不同,可以理解为功能的增强。
58949bfc7c046b69f5c0740ad1ea195f.png

DOM树形结构举例

回到我们的例子上,网页都是由DOM组成的树型结构,Selenium提供一个方法,可以依据节点的标签、属性来查找DOM上的节点,这个方法的名字叫findElement。所以访问网页的问题转换成了找到网页上节点的标签和属性。浏览器提供了这样的方法,网上也有很多相关工具,直接用今日头条app上方的搜索框输入“网页节点定位”就可以找到,头条搜索真的很强大,很方便,内容丰富,更快更全。如下:

2877914a90cad2cc047443e10dd75ec5.png

搜索举例

我们查看主页的DOM节点如下:

14a202018ce209b33a0ea70d76b32c04.png

在上图可以看到,列表的根节点标签为div,class属性值为feed-infinite-wrapper;因此可以用div.feed-infinite-wrapper找到这个节点。

下面的代码显示了如何获取列表的根节点,然后逐个获取每一个链接:

745e2841892b64f274d0f9e50236d592.png

执行程序,输出结果如下:

18bcb1a4d916b619097af058d2f93d1c.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值