使用 selenium (Python) 从 twitter post 中通过 Xpath 条件查找元素抓取 link 时出错
Error when using selenium (Python) to scrape link from twitter post with conditional find elements by Xpath
我正在尝试在推特 post 中抓取 link,但我想要的 link 在不同的 div 标签下。有多个父 div 标签,我只对特定父 div 标签下的 link 感兴趣。我检查的 HTML 显示如下:
Example of the HTML inspect I saw
我在这里搜索了一些关于通过 xpath 有条件地为 selenium 查找元素的答案。我用来获取我想要的 link 的 python 代码是:
[links.add(elem.get_attribute('href'))
for elem in browser.find_elements_by_xpath("//a[@dir ='ltr'] and //*[contains(@class, 'ABC')]")]
这是我得到的输出“结果不是节点集,因此无法转换为所需的类型。”:
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression //a[@dir ='ltr'] and //*[contains(@class, 'r-1blvdjr')] because of the following error:
TypeError: Failed to execute 'evaluate' on 'Document': The result is not a node set, and therefore cannot be converted to the desired type.
(Session info: chrome=97.0.4692.71)
能否请您指导我如何纠正此问题以获得我想要的输出,即特定父 div 标签下的 links。这是我第一次 post 在 Whosebug 上提出问题,很抱歉,如果这个问题无论如何都无法让人们理解我目前面临的错误。
[links.add(elem.get_attribute('href'))
for elem in browser.find_elements_by_xpath("//*[contains(@class, 'ABC')]/descendant::a[@dir ='ltr']")]
我正在尝试在推特 post 中抓取 link,但我想要的 link 在不同的 div 标签下。有多个父 div 标签,我只对特定父 div 标签下的 link 感兴趣。我检查的 HTML 显示如下:
Example of the HTML inspect I saw
我在这里搜索了一些关于通过 xpath 有条件地为 selenium 查找元素的答案。我用来获取我想要的 link 的 python 代码是:
[links.add(elem.get_attribute('href'))
for elem in browser.find_elements_by_xpath("//a[@dir ='ltr'] and //*[contains(@class, 'ABC')]")]
这是我得到的输出“结果不是节点集,因此无法转换为所需的类型。”:
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression //a[@dir ='ltr'] and //*[contains(@class, 'r-1blvdjr')] because of the following error: TypeError: Failed to execute 'evaluate' on 'Document': The result is not a node set, and therefore cannot be converted to the desired type. (Session info: chrome=97.0.4692.71)
能否请您指导我如何纠正此问题以获得我想要的输出,即特定父 div 标签下的 links。这是我第一次 post 在 Whosebug 上提出问题,很抱歉,如果这个问题无论如何都无法让人们理解我目前面临的错误。
[links.add(elem.get_attribute('href'))
for elem in browser.find_elements_by_xpath("//*[contains(@class, 'ABC')]/descendant::a[@dir ='ltr']")]