인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

zzzzz님의 프로필 이미지
zzzzz

작성한 질문수

내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)

셀레니움 질문있습니다.

작성

·

213

0

안녕하세요
궁금한점이 있습니다. 응용을 해볼려고 하는데 하루동안 고민해봤는데 도저히 해답을 못찾겠어서 질문드립니다.
첫번째 사진처럼 시간표 형태로 있을 때 네번재열에서 중간부분을 선택하고 싶을 때 어떻게 해야 할지 잘모르겠습니다.
표는 tr td로 구분되어있는데 4번째 열에서 중간부분 row를 선택할 때 로직이 구해지지가 않습니다.
중간부분 row 선택할 때는
follow_button=driver.find_elements_by_css_selector("div.container > a")[0]
follow_button.click()
을 눌렀는데 1번째열에 맨처음 row가 선택되어서요;; 4번째 열에서만 선택하게 하고 싶을 때는 어떻게 해야하나요?
4번째 td를 선택하기 위해 4번째 td에서 pull xpath를 복사해와서
ex)xpath=/html/body/div[4]/div[3]/div/div[2]/div[1]/div[2]/div/table/tbody/tr/td/div[3]/table/tbody/tr/td[7]<-변수 대입 자체로 에러가 납니다.
driver.find_element_by_xpath(xpath)&&find_elements_by_css_selector("div.container > a")[0]
follow_button.click() 했는데 문법오류가 나오더라구요.
특정 4번째열에 div.container > a만 선택하게 할 수 있는방법이 있나요?
ROW데이터는 시간마다 바뀌어서 지목할 데이터 XPATH를 따와서 선택할 수 도 없더라구요.. 그래서 TR부분의 XPATH를 따올려고 하는건데 TR부분의 XPATH를 따오는 것만으로 인벨리드 에러라고 나와서 구글링 해봐도 안나와서 질문드립니다.
HTML에서 첫번째열부터 다섯번째줄까지 DIV클래스가 동일합니다.
 
 

답변 1

0

DeepingSauce님의 프로필 이미지
DeepingSauce
지식공유자

안녕하세요

만약 저라면, 우선은 td element들만 전부 가져온뒤, 그 중에서 4번째 td element만 따로 뽑아 변수화 한 후, 해당 element에 대해 find_element_by_XXX 함수를 사용할 것 같습니다!

zzzzz님의 프로필 이미지
zzzzz

작성한 질문수

질문하기