본문 바로가기

[PROGRAMMING]/▶Python

크롤러 제작중 beautifull soup 치명적인 버그 발견

파이썬에서 제공해주는 뷰티풀 수프 웹페이지를 파서해주는 모듈이다

그러나 이 모듈에는 치명적인 버그가있다..

로그인 페이지에서 form태그를 파싱하는데 분명히 form태그가 있는대도 불구하고 긁어오지 못하는 현상이 벌어졌다.

그 원인은 바로

<html>

<head>

</head>

<script type = "text/javascript">

꽐라꽐라~

꽐라꽐라~

꽐라꽐라~

꽐라꽐라~

꽐라꽐라~

꽐라꽐라~

꽐라꽐라~

</script>

<body>

꽐라꽐라~

꽐라꽐라~

</body>

이건데.. 이것만봐서는 통..이해가 되질 않겠저?

결론은 헤드태그 다음에 바디태그가 없으면 헤드태그 이후의 태그들을 찾지못한다.

이런 바보같은 모듈같으니..

그냥 직접 만들어서 써야할듯하다 하,,,

인줄알았지만..... 몇번 삽질끝에 방법을 알아냈다 ;;;(이상하게 이럴리가 없는데 라고생각하고 삽질을 했다 될때까지 ㅠ)

버그가아니였다.. 역시 완벽한건가..ㄷㄷ

저런형식으로 form값을 가저오지 못할때는...

import bs4
import urllib2

url = 'http://www.****.co.kr/'

handle = urllib2.urlopen(url)
data = handle.read()
soup = bs4.BeautifulSoup(data)


html = str(soup)
so = bs4.BeautifulSoup(html)

위와같이 하면 해결된다.

원인은 soup자체가 UNICODE로 처리되는데 스트링으로 변경하지 않고 사용하게되면 폼을 찾지못하는 단순한 사용오류였던것이다...
 

'[PROGRAMMING] > ▶Python' 카테고리의 다른 글

Python기반 웹크롤러 및 스캐너 개발  (5) 2013.11.11
파이썬 정규식  (0) 2013.11.06
리버싱 관련 어셈명령어 관리 프로그램 asmdic  (0) 2013.10.02
pyScripter theme  (0) 2013.09.29
Parameter.exe 점검도구  (0) 2013.09.26