2

当我执行闲置代码时,Ghost 给了我这个错误:

    from ghost import Ghost
    from bs4 import BeautifulSoup

    url = "https://wyszukiwarkaregon.stat.gov.pl/appBIR/index.aspx"
    ghost = Ghost()

    page, resources = ghost.open(url)
    page, resources = ghost.evaluate(
         "document.getElementById('btnNowaCaptcha').click();")
    soup = BeautifulSoup(ghost.content)
    capcha = soup.find(id='imgCaptch')

但是当我使用 pdb 并再次执行最后两行时,一切都很好。有人知道为什么吗?

4

1 回答 1

3

我猜页面还没有完全加载,因此document.getElementById('btnNowaCaptcha')会返回null;你应该添加

ghost.wait_for_page_loaded()  # and/or
ghost.wait_for_selector("#btnNowaCaptcha")

ghost.evaluate确保页面完全加载之前。

于 2015-02-19T19:06:34.980 回答