반응형
당초 계획은 제작국가를 통해서 네이버에 등록된 모든 영화를 가져오는 것이었습니다. 근데 계획을 좀 변경해서, 사실 코드를 오랜만에 다시 짜면서 생각을 못 하고 있었는데 옛날 코드를 발견하면서 기억이 돌아와... , 영화의 개봉 연도 별로 파일을 저장하는 것이 좋겠다는 판단이 들었습니다. 그래도 뭐 크게 바뀐 건 없습니다. 그냥 매번 하던 대로 하면 됩니다.
나중에 코드를 완성하면 멀티프로세싱으로 고속 처리를 할 예정입니다. 그리고 또 네이버 측에서 짧은 시간 내 다량의 트래픽을 발생시키면, 어쩌면 차단의 가능성이 있을 수 있기 때문에 자동으로 위 이미지에서 보이는 연도를 가져와서 url에 하나 대입해가며 전체 영화를 한큐에 가져오는 프로그램을 구성하기보다는 연도는 수동으로 입력해주고 각 연도별로 저장을 해주는 방식이 더 좋을 것으로 판단됩니다. 그래서 일단 연도별 영화 코드를 가져오는 코드를 만들어보겠습니다.
크게 달라진건 없습니다. nation이라는 param이 open으로 바뀐 정도죠?
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
32
33
34
35
36
37
|
def getMovieCodeByYear(year):
movieCode = []
url = f'https://movie.naver.com/movie/sdb/browsing/bmovie.naver?open={year}&page=10000'
response = requests.get(url)
if response.status_code == 200:
html = response.text
soup = BeautifulSoup(html, 'lxml')
# html에서 div 태그 중 class이름이 pagenavigation 태그를 찾아라
pagenavigation = soup.find('div','pagenavigation')
# pagenavigation내 <a> 태그 중 마지막 태그의 text 값
lastPage = pagenavigation.find_all('a')[-1].text
for i in range(1, int(lastPage)+1):
url = f'https://movie.naver.com/movie/sdb/browsing/bmovie.naver?open={year}&page={i}'
response2 = requests.get(url)
if response2.status_code == 200:
html = response2.text
soup = BeautifulSoup(html, 'lxml')
# html에서 ul 태그 중 class이름이 directory_list 태그를 찾아라
directory_list = soup.find('ul','directory_list')
allA = directory_list.findAll('a')
for a in allA:
if '?code=' in str(a):
#print(str(a).split('?code=')[1].split('"')[0])
movieCode.append(str(a).split('?code=')[1].split('"')[0])
else :
print(response2.status_code)
else :
print(response.status_code)
return movieCode
|
cs |
앞서서 getMovieCodeByNation()함수가 있었죠?? 그 코드에서 국가 코드를 받아서 연속 처리하는 for문만 없애주고 url만 살짝 수정해주면 다 끝나는 겁니다. 간단하죠?
다음 포스팅에서는 본격적으로 영화의 정보를 가져오는 코드를 만들어보겠습니다~
반응형
'토이프로젝트 > [크롤링] 네이버 영화 크롤링하기' 카테고리의 다른 글
[크롤링] 네이버에서 영화정보 가져오기 - #6 영화정보 가져오기 (끝) (0) | 2022.01.26 |
---|---|
[크롤링] 네이버에서 영화정보 가져오기 - #4 (방향잡기) (0) | 2022.01.02 |
[크롤링] 네이버에서 영화정보 가져오기 - #3 (HTML 알아보기) (0) | 2022.01.01 |
[크롤링] 네이버에서 영화정보 가져오기 - #2 (Beautifulsoup 사용해 보기) (0) | 2022.01.01 |
[크롤링] 네이버에서 영화정보 가져오기 - #1 (환경셋팅) (0) | 2022.01.01 |
댓글