티스토리 뷰
네이버 증권 페이지에서 시가총액 순으로 다양한 지표를 불러와서 원하는 데이터를 얻기 위한 스크랩핑 과정에서
발생한 에러 처리 내용 공유
하고 싶은 과제 : 네이버 증권에서 finance.naver.com//item/main.nhn?code='회사코드' 페이지에서
> 최근 ROE, PER, PBR 값을 불러와서 내가 원하는 기준을 초과하거나 미만인 경우를 선별하여 회사 반환
실행코드
sub_thead = sub_soup.find("table", attrs={"class":"tb_type1 tb_num tb_type1_ifrs"}).find("thead").find_all("th", attrs={"scope":"col"}) |
여기에서 KODEX, 맥쿼리인프라, TIGER, 롯데리츠, 티와이홀딩스, 제이알글로벌리츠 등 ETF 종목은 기업실적분석 데이터를 보여주지 않는다. 이에 따라 위의 코드를 통해 각 기업의 실적분석데이터를 불러오려고 하면 아래와 같은 에러메시지를 나타낸다. 중첩된 find 문 과정에서 앞에 발생한 find 결과에서 None을 반환함에 따라 이후 thead 에서 찾는 데이터를 찾을 수 없다는 메시지이다.
Traceback (most recent call last): File "D:/develop/py_go/Python_test/kakao_test/stockList.py", line 134, in <module> sub_thead = sub_soup.find("table", attrs={"class":"tb_type1 tb_num tb_type1_ifrs"})\ AttributeError: 'NoneType' object has no attribute 'find'
Process finished with exit code 1 |
처음에는 무식한 방법으로 검색한 회사중 발생한 케이스를 제외하려 했지만, 경우의 수가 너무나 많았고 이런 비효율적인 방법은 정말 피하고 싶어서 return 값을 확인하여, 다음 find를 진행할 수 있도록 수정하였다.
결과값 None 일 결우 이후 find 실행
if sub_thead is not None: sub_thead = sub_thead.find("thead").find_all("th", attrs={"scope":"col"}) else: continue |
'개발 > 파이썬(PYTHON)' 카테고리의 다른 글
[PYTHON] 네이버 주식정보 가져오기 (1/4) - 크롤링 (1) | 2020.11.16 |
---|---|
[Python] 네이버 증권 주식 종목 가져오기 스크랩핑(크롤링) (0) | 2020.11.15 |
[Python] 카카오톡 : 메시지 (3/3 - 친구에게 기본 메시지 보내기) (0) | 2020.10.15 |
[Python] 카카오톡 : 메시지 (2/3 - 친구 목록 가져오기) (7) | 2020.10.14 |
[Python] 카카오톡 : 메시지 (1/3 - 나에게 메시지 보내기) (2) | 2020.10.10 |
- Total
- Today
- Yesterday
- 네이버 부동산
- tkinter
- 크롤링
- 경매
- Excel
- 네이버쇼핑
- pyplot
- 대항력있는 임차인
- REST API
- 부동산
- matplotlib
- 개발자도구
- 아파트
- 크몽
- 네이버 주식
- Export
- 평형정보
- eum.go.kr
- DICTIONARY
- PYTHON
- 상가
- json
- beautifulsoup
- cortarNo
- 파이썬
- 단지정보
- 매물
- pandas
- 경제적 자유
- 네이버
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |