未找到Selenium(Python)中的Web抓取抛出元素
我试图从一个官方网站上搜集中国的经济数据,但在最后一行我一直得到一个元素“未发现异常”。我已经搜索了stackoverflow,并尝试添加隐式的_wait,并将问题行从xpath切换到ID,但没有任何效果。有什么想法吗未找到Selenium(Python)中的Web抓取抛出元素,python,selenium,xpath,Python,Selenium,Xpath,我试图从一个官方网站上搜集中国的经济数据,但在最后一行我一直得到一个元素“未发现异常”。我已经搜索了stackoverflow,并尝试添加隐式的_wait,并将问题行从xpath切换到ID,但没有任何效果。有什么想法吗 from selenium import webdriver FAI = [] FAIinfra = [] FAIestate = [] path_to_chromedriver = '/Users/cargillsk/Downloads/chromedriver' bro
from selenium import webdriver
FAI = []
FAIinfra = []
FAIestate = []
path_to_chromedriver = '/Users/cargillsk/Downloads/chromedriver'
browser = webdriver.Chrome(executable_path = path_to_chromedriver)
browser.implicitly_wait(30)
url = 'http://www.cqdata.gov.cn/easyquery.htm?cn=A0101'
browser.get(url)
browser.find_element_by_id('treeZhiBiao_4').click()
browser.find_element_by_xpath('//*
[@id="mySelect_sj"]/div[2]/div[1]').click()
browser.find_element_by_xpath('//*
[@id="mySelect_sj"]/div[2]/div[2]/div[3]/input').clear()
browser.find_element_by_xpath('//*
[@id="mySelect_sj"]/div[2]/div[2]/div[3]/input').send_keys('last100')
browser.find_element_by_xpath('//*
[@id="mySelect_sj"]/div[2]/div[2]/div[3]/div[1]').click()
FAIinitial = browser.find_element_by_xpath('//*[@id="main-container"]/div[2]/div[2]/div[2]/div/div[2]/table/thead/tr/th[2]/strong').text
for i in range(2,102):
i = str(i)
FAI.append(browser.find_element_by_xpath('//*[@id="table_main"]/tbody/tr[1]/td[%s]' % i).text)
FAIinfra.append(browser.find_element_by_xpath('//*[@id="table_main"]/tbody/tr[4]/td[%s]' % i).text)
FAIestate.append(browser.find_element_by_xpath('//*[@id="table_main"]/tbody/tr[55]/td[%s]' % i).text)
browser.find_element_by_id("treeZhiBiao_3").click()
browser.find_element_by_id("treeZhiBiao_14").click()
所以。。。隐含的等待不是你的问题。通过查看网站代码,我发现没有“treeZhiBiao_14”,所以我不确定你想点击这里做什么。也许可以试着用这样的东西来代替,这样你就知道你的点击是什么了
browser.find_element_by_xpath("//*[contains(text(), '工业')]").click()
或
尝试重新聚焦
浏览器。切换到.active\u元素
您搜索了堆栈流,唯一发现的是隐式等待并将xpath更改为id,显式等待如何,iframe?Gaurang,如果有时听起来很愚蠢,我很抱歉,但我正在努力自学Python,而且我只参加了几周的培训。Re:你的评论,我的理解是,如果隐式等待不起作用,显式等待也不会起作用,因为前者涵盖了整个程序。我在html中查找框架,但没有找到。雷德普,谢谢你的提示,但不幸的是,这对我不起作用。仍然无法理解这一点。如果这有帮助的话,每隔一段时间它(看起来是随机的)就会起作用。我不明白为什么它在大多数时候都不起作用。哇,它起作用了——非常感谢。“treeZhiBiao_14”肯定在我正在查看的代码中……但我不会为此担心,因为我已经关注这个问题整整一周了!再次感谢你的帮助,没问题!当然可以尝试使用不太直接的路径,有时网站可能会更改或移动元素的位置,这会完全搞乱您的代码。
browser.find_element_by_xpath("//*[contains(text(), 'industry')]").click()