22.01.20 14:52 작성
·
4.6K
1
안녕하세요.
우선 정성스러운 강의 덕분에 많은 도움이 되고 있는 점, 감사드립니다.
강의를 바탕으로 실제로 원하는 내용을 크롤링하려다 보니 막히는 부분이 있어 질문드립니다.
네이버부동산에 강의해주신 주택이 아니라 상업용부동산 정보를 가지고 오고자 코드를 만들고 있습니다.
우선 개별 물건들의 물건번호는 확보하였고, 이 물건 번호(articleNo_list)를 이용해서 개별 물건의 정보를 가지고 오기 위해 아래와 같이 코드를 만들었습니다.
하지만 코드를 실행하니 아래와 같이 에러가 발생하였습니다.
물건 하나에 대한 정보는 잘 가져오는 것은 확인하였고, 여러 물건을 한번에 가져오기 위해 이것을 단지 for loop으로 바꾸기만 하였는데 에러가 발생하는 것을 보니 아마 네이버에서 자체적으로 개별정보를 다량으로 크롤링 하는 것을 막고 있는 것이 아닌가 생각됩니다.
혹시 sleep 시간을 길게 가져가면 되는지 보기 위해 보시는 것처럼 sleep을 5초까지 가져갔음에도 결국은 같은 에러가 나옵니다
이런 경우에 해결책은 없는지 조언부탁드립니다.
감사합니다.
답변 1
2
2022. 01. 21. 09:13
안녕하세요!
네이버부동산이 점점 rule기반 blocking을 하는 것 같습니다.
대응책은
1. header 정보를 매 request마다 조금씩 바꿔보기(User-agent)
2. retrying이라는 라이브러리를 이용해서 request fail시 재요청하는 작업 자동화해보기: https://github.com/rholder/retrying
3. 셀레니움으로 전환하기
정도가 있을 것 같습니다.
도움이 되셨으면 좋겠네요
감사합니다.
2022. 01. 21. 11:46
조언해주신대로 requests할 때 마다 header에 넣는 user-agent를 비롯한 여러 정보들을 바꾸어주면서 retrying 라이브러리를 같이 이용하니 해결이 되었습니다.
몇일동안 끙끙앓고 있었는게 이렇게 간단하게 해결이 되다니 정말 감사합니다!!!!!!!!!!