Python 3.6 및 Selenium을 사용하여 데이터 양식을 가져 오는 중입니다. 내가 잡으려고하는 테이블 중 하나에는 여러 행이 있습니다. 그래서 각 열에서 9 열을 얻고 싶습니다.Selenium과 Python을 사용하여 열 데이터를 순환하는 행을 반복하십시오.
나는이 사이트에서 검색 한 결과 거의 적응할 수있는 코드를 발견했습니다.
table_id = driver.find_element(By.ID, 'ctl00_mid_rptItems_ctl00_gvItems')
rows = table_id.find_elements(By.TAG_NAME, "tr")
for row in rows:
cols = row.find_elements(By.TAG_NAME, "td")
for col in cols:
print (cols[8].text)
내가 할 열에서 올바른 데이터를 뱉어하지만 제가하는 데 문제는이 테이블의 열 수 인, 각 행을 통해 16 번 루프이다, 각각의 데이터를 인쇄 포인트 16 번.
내가 위의 단지 "(COL)에 대한"루프table_id = driver.find_element(By.ID, 'ctl00_mid_rptItems_ctl00_gvItems')
rows = table_id.find_elements(By.TAG_NAME, "tr")
for row in rows:
cols = row.find_elements(By.TAG_NAME, "td")
print (cols[8].text)
하지만를 제거하여 각 열 1 시간을 뱉어하는 코드를 적응하기 위해 노력, 이것은 오류 "역 추적 (가장 최근 통화 마지막)를 제공합니다 : 파일 :
인쇄에서 "C \ 사용자 \ 문서 PleaseTest_R1.py을 \", 91, (COLS [8]는 .text) IndexError : 범위를 벗어난리스트 인덱스
내가이 얻을 수있는 방법에 대한 아이디어 루프가 작동합니까?
도움에 대해 너무 고마워! :-)
에 의해 행 개수를 얻을 수 있습니다 이 문제는'b.table.rows.each'와 같은 멋진 구문을 제공하기 때문에 발생합니다. 문제 해결 방법은 Chrome 또는 Mozilla에서 작업하는 경우 JavaScript 사용입니다. IE에서 작업하는 경우 JavaScript가 해결책이 아닙니다. – RAJ
제안 해 주셔서 감사합니다. 가능한 경우 파이썬에서 모든 것을 할 수 있기를 바랍니다. –