[英]How to check if an element is having an attribute using selenium-python
[英]Fetch links having no href attribute : Selenium-Python
我目前正在尝试使用selenium-python通过指定爬网深度的整个网站进行爬网。 我从Google入手,然后想到通过爬网而向前发展,同时开发代码。
它的工作方式是:如果页面为“ www.google.com”,并且其中包含15个链接,则在提取所有链接后,会将其存储在以“ www.google.com”为键和15个链接的列表作为值。 然后从相应的字典中获取15个链接中的每个链接,然后以递归的方式继续爬网。
问题在于,它相对于页面上找到的每个链接的href属性都向前移动。 但是,并非每个链接都具有href属性。
例如:在爬网并到达“ 我的帐户”页面时,它的页脚中有“ 帮助和反馈
<span role="button" tabindex="0" class="fK1S1c" jsname="ngKiOe">Help and Feedback</span>
为<span role="button" tabindex="0" class="fK1S1c" jsname="ngKiOe">Help and Feedback</span>
。
因此,我不确定的是-在这样的上下文中可以做什么,因为在这种情况下javascript / ajax高度支持链接很重要-因为它没有链接,但是会打开模式窗口/对话框或排序。
您可能需要找到链接的设计模式。 例如:您可能有一个带有锚标记的链接,并且在您的情况下为跨度。
这取决于网页的设计。 开发人员如何通过属性/标识符来设计html元素。
例如:如果开发人员决定为所有不具有锚标记名称的链接使用一个公共类值,则识别所有这些元素将很容易。
您也可以尝试在此处编写脚本以获取具有预期标签名称(例如:span)的所有元素,然后尝试单击元素。 您可以获取后端响应/日志详细信息的详细信息。 因此,对于那些单击,您将获得其他响应/日志,这意味着在其后写有其他代码,这使我们知道它不是静态元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.