태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

2012/12에 해당하는 글 2

Python으로 레이싱 갤러리 사진 긁어 오기

CAT-Security/미분류|2012.12.20 20:25


http://jangc.tistory.com/17

장모님 블로그를 보고 공부한것을 새로이 포스팅한 글입니다.



>>> racingGirlUrl = http://gall.dcinside.com/list.php?id=racinggirl&no=


변수로 racingGirlUrl에 dcinside의 url주소를 가져 옵니다.

파이썬에서는 ' 와 "의 묶음은 차이가 없습니다.



>>> for no in range(170710, 170720):
>>>     print racingGirlUrl + str(no)


그 뒤에 for문을 이용해서 racinggirl&no=뒤에 넣을 숫자들을 돌립니다.

그리고 print racingGrilUrl을 해주게 되면 결과값으로


http://gall.dcinside.com/list.php?id=racinggirl&no=222543

http://gall.dcinside.com/list.php?id=racinggirl&no=222544

http://gall.dcinside.com/list.php?id=racinggirl&no=222545

http://gall.dcinside.com/list.php?id=racinggirl&no=222546

http://gall.dcinside.com/list.php?id=racinggirl&no=222547

http://gall.dcinside.com/list.php?id=racinggirl&no=222548


이런식으로 쭉 뜨게 됩니다.

이 값을 url이라는 변수에 넣어 주도록 합니다.



>>>     url = racingGirlUrl + str(no)
>>>     f = urllib.urlopen(url)

url이라는 변수에는 갤러리의 주소값이 들어가고, 그 주소값을 urllib.urlopen()이라는 함수를 써서 f라는 변수에 넣습니다.

urllib의 모듈은 웹상의 문서나 파일을 가져올 수 있는 모듈입니다.  url이나 header등의 정보들을 가져 올 수 있습니다.


사용법은 아래와 같습니다.


print f.headers

print f.url



>>>     html = f.read()
>>>     imageUrlList = re.findall("http://image.dcinside.com/download.php[^']+", html)


저런식으로 변수에 넣어서, f.read()등으로 쓰이게 됩니다. url의 값을 읽은뒤 f.read로 소스값을 html이란 변수로 넣습니다.

print html을 하게 되면 페이지의 소스값이 출력되게 됩니다.


그 출력된 값을 re.findall 이라는 모듈을 사용하여서 또 다른 변수 imageUrlList에 넣습니다.

findall 이란, 첫번째 값과 두번째 값을 비교하는 모듈 입니다. 정규표현식을 써서 download.php뒤 에 있는 [^'] 이 부분과

html에(소스값들이 들어가있는)을 비교해서 같은부분을 찾는 것 입니다.


즉 html 안에 있는 download.php---블라블라 하는것들이(즉 .jpg파일) 걸러지게 되어서 imageUrlList에 들어가게 됩니다.

이렇게 넣은 imageUrlList가지고 또 하나의 for문을 돌립니다.


파일값을 가지고 왔으니 이것을 jpg로 변환시켜서 저장시키면 될 것 같습니다.



        for url in imageUrlList:
                print fileNo
                contents = urllib.urlopen(url).read()
                file(str(fileNo)+'.jpg', 'wb').write(contents)
                fileNo = fileNo + 1



imageUrlList로 받은 검색된 값을, url 만큼 돌려서 그것들을 0.jpg부터 해서 저장 하는 부분 입니다.

그렇게 되면 url에는 imageUrlList에서 뽑은 리스트의 값들이 각각 들어가게 되고 그것으로 file을 생성 할 수 있습니다.




추가적으로 ("http://image.dcinside.com/download.php) 이 주소가 아닌

                ("http://dcimg1.dcinside.com/viewimage.php 이 주소로 바뀐 것 같습니다.


원래 주소로 다운 받으려고 하면은, 빈 페이지가 나오고 저 페이지로 가야 정상적으로 다운이 됩니다.




완성 소스 입니다.



 #!/usr/bin/python

import urllib

import re

import urllib2



fileNo = 0

racingGirlUrl = 'http://gall.dcinside.com/list.php?id=racinggirl&no='

for no in range(222548, 222550):

        url = racingGirlUrl + str(no)

        html = urllib.urlopen(url).read()

        imageUrlList = re.findall("http://dcimg1.dcinside.com/viewimage.php[^']+", html)

#       print imageUrlList

        for url in imageUrlList:

#               print fileNo

                print url

                contents = urllib.urlopen(url).read()          #소스값을 가지고 옴

                file(str(fileNo)+'.jpg', 'wb').write(contents)

                fileNo = fileNo + 1








'CAT-Security > 미분류' 카테고리의 다른 글

Callback(콜백 함수) 정리  (0) 2013.01.17
Code injection (1) - Basic  (2) 2013.01.02
Python으로 레이싱 갤러리 사진 긁어 오기  (0) 2012.12.20
python 공부 자료  (0) 2012.12.20
kernel object 와 handle 정리  (2) 2012.11.29
[시스템 기초] 스터디(3주차)  (0) 2012.11.27

댓글(0)

python 공부 자료

CAT-Security/미분류|2012.12.20 00:09

[기초]왕초보 파이썬 - 가장, 이해하기 좋은 곳이죠

http://turing.cafe24.com/

[기초]점프 투 파이썬 - 파이썬의 전반적 응용과 기초 내용을 다루었지만, 조금 어렵습니다.

http://wikidocs.net/mybook/read/page?pageid=1

 

[응용]파이썬으로 레이싱 갤러리 긁어오기(배워가는 형식으로 작성되어 있습니다)

http://jangc.tistory.com/17

 

[응용]레이싱 갤러리 긁어오기

http://bbs.python.or.kr/viewtopic.php?t=14639

 

[응용]오늘의 TV 방송 편성표 가져오기

http://bbs.python.or.kr/viewtopic.php?t=22426

 

[응용]파이썬 미니 웹서버 만들기 (소켓 프로그래밍을 쉽게 다룹니다)

http://wikidocs.net/mybook/read/index?pageid=77

 

[응용]프로그램에서 웹브라우져 제어하기

http://bbs.python.or.kr/viewtopic.php?t=14525

 

[응용]HTML문서에서 모든 URL뽑아내기

http://bbs.python.or.kr/viewtopic.php?t=14524

 

[응용]엑셀 파일 읽고 쓰기  (COM 객체도 쉽게 다룹니다)

http://bbs.python.or.kr/viewtopic.php?t=20519

 

[커뮤니티]파이썬 마을

http://www.python.or.kr/



사이트 : http://wikidocs.net/read/book/2

그 밖의 사이트

파이썬 3 프로그래밍, 소스 및 동영상 강좌 제공
http://book.wikibook.co.kr/python3/info/

왕초보를 위한 파이썬

http://wikidocs.net/read/book/136

날로 먹는 Django 웹 프로그래밍 강좌
http://www.hannal.net/think/01-python_django_lecture/

다이빙 파이썬
http://coreapython.hosting.paran.com/dive/chap00.html

Learn Python The Hard Way
http://learnpythonthehardway.org/book/

 

'CAT-Security > 미분류' 카테고리의 다른 글

Code injection (1) - Basic  (2) 2013.01.02
Python으로 레이싱 갤러리 사진 긁어 오기  (0) 2012.12.20
python 공부 자료  (0) 2012.12.20
kernel object 와 handle 정리  (2) 2012.11.29
[시스템 기초] 스터디(3주차)  (0) 2012.11.27
리그 오브 레전드 첫 금장  (0) 2012.11.24

댓글(0)