如何使用Selenium反复获取内容<Python>?

玩具男

我正在从这里爬行文本我需要反复单击“加载更多参数”以获取页面上列出的所有参数。这是我的代码:

try:
    while True:
        link = WebDriverWait(driver, 5).until(
        EC.element_to_be_clickable((By.LINK_TEXT, "Load More Arguments")))

        ActionChains(driver).move_to_element(link).perform()
        link.click()
        time.sleep(3) #wait for the update to occurr so the page loads"new arguments for you"
        print(driver.execute_script("return document.documentElement.outerHTML;"))

        if not (link):
            break
finally:
    None

这是错误:

File "debate.py", line 42, in <module>
  EC.element_to_be_clickable((By.LINK_TEXT, "Load More Arguments")))
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium-2.44.0-py2.7.egg/selenium/webdriver/support/wait.py", line 71, in until
  raise TimeoutException(message)
selenium.common.exceptions.TimeoutException: Message: 

我确实获得了页面上列出的参数,但是我认为我的代码有点奇怪,尤其是在循环中。我认为我需要一些东西来代替“如果不是”,例如“无法点击”。你能给我一些建议吗?

谢谢你。

路易

是的,if not link:是不是你想要的状态。如果这个条件曾经是真的,那么您move_to_element和theclick都不会起作用,因为在它们与您的if not link:测试之间没有任何东西可以link通过引用一个元素而改变None(或其他错误的值)。link包含的元素引用可能会过时,但是这种问题会产生特定的异常。没有任何魔术能使陈旧的参考变为None

您当前遇到的超时事件很可能表明您已完成。我希望一旦加载了所有内容,加载更多参数的按钮将不可单击(因为它不再存在或因为已禁用)。(我无法验证这一点,因为您提供的链接使我进入了一个没有说明问题的页面。)

如果您打破了例外,则可以退出循环。这也可以解决以下情况:尚无参数或参数不足以保证按钮的存在:

from selenium.common.exceptions import TimeoutException

[....]

while True:
    try:
        link = WebDriverWait(driver, 5).until(
            EC.element_to_be_clickable((By.LINK_TEXT, "Load More Arguments")))
    except TimeoutException:
        break
    [...]

一些注意事项:

  1. 外部try... finally块似乎没有任何作用。

  2. 通常,您可以移动并单击一个链接,link.click()而无需使用即可执行此操作ActionChains在极少数情况下,您需要在单击之前执行移动。

  3. 您应该将time.sleep调用替换为显式等待,该等待将检查页面状态以确定参数何时完成加载。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Selenium Python获取Iframe Src内容

来自分类Dev

如何使用python获取动态Web内容?

来自分类Dev

Python:如何反复获取每次都会超时的用户输入

来自分类Dev

如何使用Python使用Selenium获取选定的文本选项?

来自分类Dev

如何使用python从网络浏览器获取内容?

来自分类Dev

如何使用 Python 3 从 html 标签样式中获取内容?

来自分类Dev

如何使用硒(python)获取div标签的内容

来自分类Dev

NLTK:如何使用python 在循环中获取数组的特定内容?

来自分类Dev

如何在Python中使用Selenium WebDriver获取文本

来自分类Dev

如何使用Selenium和Python从元素获取链接

来自分类Dev

如何使用Selenium和Python从列表中获取特定元素

来自分类Dev

如何使用Python Selenium在元素内部获取文本?

来自分类Dev

如何使用Selenium从Python的html标题中获取文本?

来自分类Dev

如何使用Selenium和Python获取元素的href属性

来自分类Dev

如何使用Python Selenium获取部分html源代码?

来自分类Dev

如何使用Selenium Python从html表中获取文本对象

来自分类Dev

如何使用Selenium-Python获取CSS属性的名称?

来自分类Dev

如何使用 selenium python 获取伪元素的 css 值?

来自分类Dev

如何使用python和selenium获取子元素数据?

来自分类Dev

使用 python selenium 获取价值

来自分类Dev

如何使用python的美汤获取标签和以HTML结尾的内容之间的内容?

来自分类Dev

使用-xpath -selenium -python访问标签的内容

来自分类Dev

获取由 Selenium Python 中的 Html 按钮生成的内容

来自分类Dev

当文本更改为其他内容时,如何使用Selenium和Python单击按钮?

来自分类Dev

如何在python中获取javascript内容

来自分类Dev

使用python获取网页正文中的内容

来自分类Dev

使用python获取网页正文中的内容

来自分类Dev

反复在python中使用append的速度

来自分类Dev

使用Python反复进行迭代问题

Related 相关文章

  1. 1

    使用Selenium Python获取Iframe Src内容

  2. 2

    如何使用python获取动态Web内容?

  3. 3

    Python:如何反复获取每次都会超时的用户输入

  4. 4

    如何使用Python使用Selenium获取选定的文本选项?

  5. 5

    如何使用python从网络浏览器获取内容?

  6. 6

    如何使用 Python 3 从 html 标签样式中获取内容?

  7. 7

    如何使用硒(python)获取div标签的内容

  8. 8

    NLTK:如何使用python 在循环中获取数组的特定内容?

  9. 9

    如何在Python中使用Selenium WebDriver获取文本

  10. 10

    如何使用Selenium和Python从元素获取链接

  11. 11

    如何使用Selenium和Python从列表中获取特定元素

  12. 12

    如何使用Python Selenium在元素内部获取文本?

  13. 13

    如何使用Selenium从Python的html标题中获取文本?

  14. 14

    如何使用Selenium和Python获取元素的href属性

  15. 15

    如何使用Python Selenium获取部分html源代码?

  16. 16

    如何使用Selenium Python从html表中获取文本对象

  17. 17

    如何使用Selenium-Python获取CSS属性的名称?

  18. 18

    如何使用 selenium python 获取伪元素的 css 值?

  19. 19

    如何使用python和selenium获取子元素数据?

  20. 20

    使用 python selenium 获取价值

  21. 21

    如何使用python的美汤获取标签和以HTML结尾的内容之间的内容?

  22. 22

    使用-xpath -selenium -python访问标签的内容

  23. 23

    获取由 Selenium Python 中的 Html 按钮生成的内容

  24. 24

    当文本更改为其他内容时,如何使用Selenium和Python单击按钮?

  25. 25

    如何在python中获取javascript内容

  26. 26

    使用python获取网页正文中的内容

  27. 27

    使用python获取网页正文中的内容

  28. 28

    反复在python中使用append的速度

  29. 29

    使用Python反复进行迭代问题

热门标签

归档