获取没有href属性的链接:Selenium-Python

时间:2017-09-28 07:07:03

标签: python selenium web-crawler

我目前正在尝试使用 selenium-python 通过具有指定抓取深度的整个网站进行抓取。我从Google开始,并考虑通过爬行前进并同时开发代码。

  

它的工作方式是:如果页面是“www.google.com”并且其中包含15个链接,则在获取所有链接后,它将存储在带有“www.google.com”的字典中密钥和15个链接的列表作为值。然后,从相应的字典中获取15个链接中的每个链接,并以 递归 方式继续抓取。

这个问题在于它相对于页面上找到的每个链接的 href 属性向前移动。但并非每个链接都有href属性。

  

例如:当它抓取并到达My Account Page时,它的页脚中有帮助和反馈,其外部HTML为<span role="button" tabindex="0" class="fK1S1c" jsname="ngKiOe">Help and Feedback</span>

所以我不确定是什么 - 在javascript / ajax高度支持链接的情况下可以做些什么呢?因为它没有链接但是打开了一个模态窗口/对话框或排序。

1 个答案:

答案 0 :(得分:0)

  

您可能需要找到链接的设计模式。例如:你   可以有一个锚标记链接,在你的情况下。

这取决于网页的设计。开发人员如何通过属性/标识符来设计html元素。

例如:如果dev决定为所有不带锚标记名称的链接都有一个公共类值,那么很容易识别所有这些元素。

  

你也可以尝试编写一个脚本来获取所有元素   预期的标签名称(例如:span)在这里并尝试点击   元素。您可以获取后端响应/日志的详细信息   细节。所以对于那些,点击,您获得额外的   响应/日志意味着它后面写了一个额外的代码   让我们知道它不是一个静态元素。