Python Selenium can';找不到元素

Python Selenium can';找不到元素,python,selenium,web-scraping,amazon,Python,Selenium,Web Scraping,Amazon,我正试图搜集一些亚马逊的问题和答案,特别是这一个: 这是每个问题的html部分(可以在开发人员工具中进行html检查以了解更多详细信息): 它们确实有助于伸展脚趾。我希望避免一只脚长出锤状脚趾,我不确定他们是否在这样做,但我读到避免锤状脚趾长出的一种方法是伸展脚趾,所以我认为从长远来看它们会有帮助,可能不会造成任何伤害。从一开始… 它们确实有助于伸展脚趾。我希望避免一只脚长出锤状脚趾,我不确定他们是否在这样做,但我读到避免锤状脚趾长出的一种方法是伸展脚趾,所以我认为从长远来看它们会有帮助,

我正试图搜集一些亚马逊的问题和答案,特别是这一个:

这是每个问题的html部分(可以在开发人员工具中进行html检查以了解更多详细信息):


它们确实有助于伸展脚趾。我希望避免一只脚长出锤状脚趾,我不确定他们是否在这样做,但我读到避免锤状脚趾长出的一种方法是伸展脚趾,所以我认为从长远来看它们会有帮助,可能不会造成任何伤害。从一开始…
它们确实有助于伸展脚趾。我希望避免一只脚长出锤状脚趾,我不确定他们是否在这样做,但我读到避免锤状脚趾长出的一种方法是伸展脚趾,所以我认为从长远来看它们会有帮助,可能不会造成任何伤害。从一开始我的脚趾就没有受伤,所以我没有像一些人描述的那样有一个调整期。我每天都使用它们,我喜欢在半小时或45分钟内保持平静,而我所做的就是伸展脚趾。那也值点钱!
这对我很有效

see_more_links = driver.find_elements_by_partial_link_text("see more")
for link in see_more_link:
    link.click()
answers = driver.find_elements_by_css_selector("span.askLongText")
for answer in answers:
    print str(answer.text).replace('see less', '')
输出:

它们确实有助于伸展脚趾。我希望避开锤子 一只脚的脚趾一直在发育,我不确定它们是否在发育 这样做,但我读到避免锤头脚趾发育的一种方法是 伸展脚趾,所以我想从长远来看,它们会有帮助 可能不会有什么害处。从一开始我就没伤过脚趾,所以 我没有像一些人描述的那样有一个调整期。我 每天使用它们,我喜欢安静半小时 或者45分钟,而我所做的就是伸展我的脚趾。那是值得的 还有些东西

他们绝对会重新调整你的脚趾,理顺你的脚骨。 您需要在开始设置它们时定期使用它们 更直。当你的疼痛减轻一点后,你可以降低血压 频率和延长您佩戴它们的时间。他们帮了我的忙 在过去的几周里,拇趾囊炎的疼痛减轻了很多。嗯 价值$IMO,绝对比手术好

我不知道要穿多久才能永久 改进对齐。瑜伽脚趾对放松足部和肌肉非常有帮助 脚趾绷紧,这确实改善了我的行走和平衡。因为 我的一只脚上已经长了一个拇趾囊炎,我怀疑这是否有助于保持健康 脚部对齐,但瑜伽脚趾帮助我的脚更好地适应 那个布尼翁

这对我有用

see_more_links = driver.find_elements_by_partial_link_text("see more")
for link in see_more_link:
    link.click()
answers = driver.find_elements_by_css_selector("span.askLongText")
for answer in answers:
    print str(answer.text).replace('see less', '')
输出:

它们确实有助于伸展脚趾。我希望避开锤子 一只脚的脚趾一直在发育,我不确定它们是否在发育 这样做,但我读到避免锤头脚趾发育的一种方法是 伸展脚趾,所以我想从长远来看,它们会有帮助 可能不会有什么害处。从一开始我就没伤过脚趾,所以 我没有像一些人描述的那样有一个调整期。我 每天使用它们,我喜欢安静半小时 或者45分钟,而我所做的就是伸展我的脚趾。那是值得的 还有些东西

他们绝对会重新调整你的脚趾,理顺你的脚骨。 您需要在开始设置它们时定期使用它们 更直。当你的疼痛减轻一点后,你可以降低血压 频率和延长您佩戴它们的时间。他们帮了我的忙 在过去的几周里,拇趾囊炎的疼痛减轻了很多。嗯 价值$IMO,绝对比手术好

我不知道要穿多久才能永久 改进对齐。瑜伽脚趾对放松足部和肌肉非常有帮助 脚趾绷紧,这确实改善了我的行走和平衡。因为 我的一只脚上已经长了一个拇趾囊炎,我怀疑这是否有助于保持健康 脚部对齐,但瑜伽脚趾帮助我的脚更好地适应 那个布尼翁


如果您希望在一次拍摄中获得所有答案,下面的脚本值得尝试:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.amazon.com/ask/questions/Tx1AYFFVMESHMZV/ref=ask_ql_ql_al_hza")

for showmore in driver.find_elements_by_css_selector(".askSeeMore"):
    showmore.click()

for ans in driver.find_elements_by_css_selector("[id^='answer-']"):

    if "askLongText" in ans.get_attribute("class"):
        print(ans.find_element_by_css_selector(".askLongText").text)

    else:
        print(ans.find_element_by_css_selector("span").text)

driver.quit()

如果您希望在一次拍摄中获得所有答案,下面的脚本值得尝试:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.amazon.com/ask/questions/Tx1AYFFVMESHMZV/ref=ask_ql_ql_al_hza")

for showmore in driver.find_elements_by_css_selector(".askSeeMore"):
    showmore.click()

for ans in driver.find_elements_by_css_selector("[id^='answer-']"):

    if "askLongText" in ans.get_attribute("class"):
        print(ans.find_element_by_css_selector(".askLongText").text)

    else:
        print(ans.find_element_by_css_selector("span").text)

driver.quit()

我已经调试了你的代码。下面提到的代码行:

answer = ans.find_element_by_css_selector('span.askLongText').text
正在引发异常,因为元素
span
不仅包含文本。
span
标记中有一个
锚定
标记。要获取元素的完整内容,必须使用
.get\u属性('innerHTML')

您必须将代码行更改为:

answer=ans.find\u element\u by\u css\u选择器('span.askLongText')。get\u属性('innerHTML')


在答案中,您将获得
span
元素的完整内容。

我已经调试了您的代码。下面提到的代码行:

answer = ans.find_element_by_css_selector('span.askLongText').text
正在引发异常,因为元素
span
不仅包含文本。
span
标记中有一个
锚定
标记。要获取元素的完整内容,必须使用
.get\u属性('innerHTML')

您必须将代码行更改为:

answer=ans.find\u element\u by\u css\u选择器('span.askLongText')。get\u属性('innerHTML')


在答案中,您将获得
span
元素的完整内容。

@GPT14的答案近乎完美,但有一个小错误,因为解决方案还打印文本请参阅less,以及基本上不属于答案一部分的每个答案。要仅提取准确答案,您可以使用以下代码块:

代码块:

from selenium import webdriver

options = webdriver.ChromeOptions() 
options.add_argument("start-maximized")
options.add_argument('disable-infobars')
driver=webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get("https://www.amazon.com/ask/questions/Tx1AYFFVMESHMZV/ref=ask_ql_ql_al_hza")
see_more_links = driver.find_elements_by_css_selector("span.askShortText>a")
for link in see_more_links:
    link.click()
long_answer_texts = driver.find_elements_by_xpath("//span[@class='askLongText']")
for long_answer_text in long_answer_texts:
    print(driver.execute_script('return arguments[0].firstChild.textContent;', long_answer_text).strip())
控制台输出:

它们确实有助于伸展脚趾。我希望避免一只脚长出锤状脚趾,我不确定他们是否这样做,但我读到避免锤状脚趾长出的一种方法是伸展脚趾,所以