오늘은 어제 해결하지 못 했던 부분을 해결하고 코드를 리팩토링했다. 먼저, Features지만 뉴스 기사가 아닌 카테고리에 해당하는 Features가 있어 이를 크롤링에서 제외하는 코드를 추가했다.
features = driver.find_elements(By.PARTIAL_LINK_TEXT, "Features")
for feature in features:
# 기사가 아닌 카테고리 features는 제외
if feature.text == 'Features':
print(feature.text)
continue
Features에 해당하는 elements를 전부 읽으면서 text가 Features인지 확인한다. 뉴스 기사일 경우, Features.text에 제목이 포함되어 있고 카테고리면 Features로만 출력되어 조건문으로 걸러주었다.
그런데 이 조건문을 추가하니 이전에 없던 오류 메세지가 떴다.
feature.text 부분에서 오류가 나는데 디버깅을 해도 feature.text엔 문제없이 Features가 출력되어 한동안 삽질했다. 그러다가 elements가 html에서 찾을 수 없다는 게 원인이라는 걸 발견했다. 오류 관련한 글은 따로 정리해두었다. ㅎㅎ
https://hyang2data.tistory.com/145
이 오류를 해결하고 날짜 데이터도 크롤링하도록 추가했다.
# 기사 날짜
current_date = driver.find_element(By.XPATH, "/html/body/div/main/section[1]/div/div[1]/div[1]/div[2]/span[3]").text
dates.append(current_date)
-- 작성중 --
반응형