2020년 12월 19일 시작
블로그에 글을 작성하니 블로그 활성화가 눈에 들어오기 시작했다
활성화 방법 중 하나 일 것 같은 서로 이웃부터 시작하기로 했다 (내 생각이다)
일단은 이것도 마찬가지로 네이버에 로그인을 해야 하니
셀레늄을 사용하고 로그인 코드는 이전 포스팅(아래 링크)에서 확인할 수 있다
로그인을 한 후 블로그 홈으로 접속해보자
여기에서 블로그들의 아이디를 가져와 서로 이웃을 추가해보도록 하겠다
일단은 일상. 생각을 주제로 포스팅을 하는 블로거를 선택했다
마찬가지로 셀레늄과 beautifulsoup를 이용하여 블로거 아이디를 크롤링해보겠다
크롤링하기 전 html 코드를 분석한다
이번에는 list형식이 아닌 div형식으로 되어있다
일단은 list_post_article의 클래스 명을 선택해보겠다
클래스명을 선택한 다음 블로거의 아이디를 가져와야 한다
블로그에 주소를 살펴보면 blog.naver.com/아이디 형식이다
이러한 방법을 이용해 블로그 주소를 가져오면 된다
ng-href태그에 블로그 주소가 있는 것을 확인할 수 있다
for li in soup.select('. list_post_article'):
href = li.select('.desc_inner')[0].attrs['href'] print(href)
크롤러 결과를 얻을 수 있었다
우리가 필요한 건 blog.naver.com/아이디에 해당하는 부분이니
split를 하든 정규식을 사용해도 되는데 나는 split을 사용하도록 하겠다
for li in soup.select('.list_post_article'):
href = li.select('.desc_inner')[0].attrs['href'].split('.com/')[1].split('/')[0] print(href)
이렇게 변경해주면 아이디만 잘 가져오는 것을 확인할 수 있다
이제는 서로 이웃 추가를 하면 된다
서로 이웃을 추가하는 동작을 구현하기 위해 실제로 서로이웃을 추가해보기로 한다
마침 정말 좋은 예가 나온듯했다
내가 원하는 것은 서로 이웃인데 초록매실님 블로그는 서로 이웃이 신청이 되지 않는다
이것을 기억해 둔 뒤 나중에 예외처리를 하면 될 것 같다
다시 돌아와서 주소를 자세히 보면 https://blog.naver.com/BuddyAdd.nhn?blogId=
blogid 값의 해당 블로거 아이디를 입력하면 되는 것 같다
나는 주소이동이 편하니 주소이동을 해보도록 하겠다
주소이동을 하려고 보니 네이버에서 막은듯해 보였다
아무리 주소이동을 해봐도 무반응이다
이러면 곤란해
나는 다시 다른 해결방안을 찾아야 한다
생각해보면 블로그에 접속 후 서로 이웃 버튼을 눌러서 추가할 수 있다
생각한 방법대로 이루어졌으면 하는 바람이다
2020년 12월 19일 오후
모바일 버전으로 이웃추가를 하면 정말 좋을 듯하다
pc버전은 사용자가 레이아웃을 변경해두면 많은 변수가 생길듯한데
모바일 버전은 아래와 같이 지정되어있어 변수를 최소화할 수 있을 것 같다
다시 아이디를 가져와서 블로그로 이동하도록 하자
naver.get('https://m.blog.naver.com/PostList.nhn?blogId=' + href)
이웃 추가를 클릭해서 해보자
이웃 추가를 클릭해서 페이지를 이동해보니 여기는 주소가 pc버전에서 보던 주소와는 달랐다
여기는 주소이동을 할 수 있을 것 같아 시도해보았다
정상적으로 셀레늄으로 주소이동이 되었다
이 방법으로면 다시 처음으로 돌아가 아이디만 크롤링해서 주소이동을 하면 될듯하다
주소 이동 테스트를 해보던 중 이런 문구가 뜨게 된다
주소 이동에는 오류가 없지만 서로 이웃을 추가하는 동작에서는 오류가 날것이 뻔했다
이 부분도 기억해두고 예외처리를 해주면 될 것 같다
이웃 추가를 위해 서로 이웃을 누르고 추가를 눌러주면 될 것 같다
전에 서로 이웃이 금지된 블로그도 있으니 서로 이웃을 선택되는지 예외 처리하고
넘어가면 될 것 같다
try:
naver.find_element_by_id('bothBuddyRadio').click() #서로이웃 라디오
except:
continue
이렇게 예외처리를 해주었다
오류가 발생하면 for문에 continue를 하여 처음으로 돌아갈 것이다
try문 밑으로 정상 작동하는 구문들을 써주면 될 것 같다
서로 이웃을 클릭했으면 아래 서로 이웃 신청 멘트를 작성하면 된다
이 부분에 xpath를 가져와서 사용하면 될 것 같다
naver.find_element_by_xpath('//*[@id="buddyAddForm"]/fieldset/div/div[2]/div[3]/div/textarea').clear()
naver.find_element_by_xpath('//*[@id="buddyAddForm"]/fieldset/div/div[2]/div[3]/div/textarea').send_keys('서로이웃 추가해요!')
이렇게 작성하면 될 것 같다
나는 조금 더 멘트를 길게 쓰기 위해 텍스트 파일을 만들어 텍스트 파일에 있는 내용으로 작성하려고 한다
이렇게 네이버 서로 이웃 자동 추가 프로그램이 완성되었다
끝.
'개발일지' 카테고리의 다른 글
인스타그램 좋아요 해시태그 크롤러 개발일지 (0) | 2020.12.22 |
---|---|
티스토리 쿠파스 자동 글쓰기 - 오쿠파스 개발일지 (1) | 2020.12.21 |
페이스북 자동 친구추가 프로그램 개발일지 [주문제작] (0) | 2020.12.20 |
네이버 지식인 질문 자동 답변 프로그램 개발일지 (4) | 2020.12.19 |
네이버 지식인 질문 크롤러 개발일지 (0) | 2020.12.18 |