好的,所以我不熟悉使用Python和HTML / Javascript进行编程,但到目前为止我已经成功地抓了一两个网站。但是,我遇到了这个网站,它让我绕过弯道。
我的代码是:
#import libraries
from urllib.request import urlopen as ureq
from bs4 import BeautifulSoup as soup
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
#set chromepath to include .exe
chrome_path = r"C:\Program Files\Python37\chromedriver_win32\chromedriver.exe"
driver = webdriver.Chrome(chrome_path)
#set variables
myurl='http://www.ctbar.org/search/newsearch.asp'
driver.get(myurl) # loads the 1st page into the browser
element = driver.find_elements(By.ID, 'SearchResultsGrid')
print (element)
print('Done')
driver.quit()
我得到的唯一输出是:
[] 完成
我错了几点?
在我沮丧地放弃之前请帮忙: - )
答案 0 :(得分:1)
您要查找的元素包含在iframe SearchResultsFrame
。
试试这个:
driver.switch_to_frame('SearchResultsFrame')
element = driver.find_elements(By.ID, 'SearchResultsGrid')
答案 1 :(得分:1)
您将获得一个空白列表,因为驱动程序无法找到与定位器策略匹配的元素(By.ID,' SearchResultsGrid')。
它在一个框架内,你需要先切换到框架,然后找到元素
答案 2 :(得分:1)
您找到的位于iframe内的元素,您必须先将上下文切换到它:
allfpga: fpga0 fpga1 fpga2 fpga3 fpga4 fpga5 fpga6
fpga0:
cd fpgas/$(@)/build && $(MAKE)
fpga1:
cd fpgas/$(@)/build && $(MAKE)
fpga2:
cd fpgas/$(@)/build && $(MAKE)
fpga3:
cd fpgas/$(@)/build && $(MAKE)
fpga4:
cd fpgas/$(@)/build && $(MAKE)
fpga5:
cd fpgas/$(@)/build && $(MAKE)
fpga6:
cd fpgas/$(@)/build && $(MAKE)