파이썬에서 BeautifulSoup 의 find

Posted by 두두오빠
2018. 8. 19. 19:03 프로그래밍/파이썬 Python

BeautifulSoup을 사용하면서 find를 경우에 따라서 사용하고 있다


한번쯤 정리를 해보고 넘어가는 것이 기억에도 남고, 지속적으로 내 자산이 될 것이다




find 가 하는일


find 는 해당인자를 찾는 역할을 한다


아래 소스로는, 첫번째의 <table>      -------------------    </table>   이 나오는 것을 확인할 수 있다



    soup = BeautifulSoup(html, 'html.parser')

    content_table = soup.find('table')

    

    print(content_table)

    



다음을 통해 추가적으로 확인해보자


    data_result = soup.find('table')


    f2data = data_result.find('tr')
    print(f2data)


    f2data = data_result.find("tr")

    print(f2data)



find안의 문자에 따옴표를 한개를 사용해도, 두개를 사용해도, 결과는 같다.


처음으로 존재하는 다음 구문을 가져온다

<tr>    </tr>  




쫌 더 확장을 해보자


스크립트에는 속성을 가진 것들이 있다


지금까지의 방법으로,   <tr class= "first"> 이런 구문을 가져오기 위해서 테스트를 해보았다



    f2data = data_result.find('tr class')

    print(f2data)



결과는 None으로 찍힌다


단순히 문자를 찾는 개념이라면 'tr class' 로 검색했을때 어떤 값이라도 나왔어야 하는데


단순한 생각으로 원하는 결과를 얻지는 못했다




그럼.. find로는 각 속성까지 찾지 못하는 걸까?


아니다 


다음과 같은 방법이 있다


    f2data = data_result.find("tr", {"class":"first"})

    print(f2data)


원하는 다음의 구문을 가져오는 것을 성공하였다


<tr class= "first">  ---------------   </tr>




[파이썬 Python] mac버전으로 Python에 BeautifulSoup 설치하기

Posted by 두두오빠
2017. 9. 6. 23:30 프로그래밍/파이썬 Python

python 사용을 위해서, window 환경에는 설치를 완료했고, 개인적으로 사용하는 mac에도 설치를 해봤다. python 을 다운로드 받고, 실행까지 잘 되는 것을 확인할 수 있었다. 하지만, BeautifulSoup 사용을 위한 설치도중에 문제에 계속 걸렸다.


검색중에 mac에는 이미 python이 설치되어 있다는 것을 알았다. terminal 에서 python 을 실행하면, 현재 작동 가능한 버전의 python이 실행된다. 현재 가능한 버전은 2.7.10 이다. 나는 python 을 설치한 적이 없지만, 이미 2015년부터 설치가 되어 있었다라고 나온다.






Python에 BeautifulSoup 설치하기

다운로드 받은, BeautifulSoup 파일의 경로를 확인하여, 해당 경로에 들어간다.


cd /Applications/beautifulsoup4-4.6.0


다음 명령을 실행시키면 python 에 BeautifulSoup 가 설치된다.

Kim-ui-MacBook-Air:beautifulsoup4-4.6.0 kkk$ python setup.py install



BeautifulSoup 설치중에 다음과 같은 메시지가 나온다.


running install

Checking .pth file support in /Library/Python/2.7/site-packages/

error: can't create or remove files in install directory


The following error occurred while trying to add or remove files in the

installation directory:


    [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/test-easy-install-35586.pth'


The installation directory you specified (via --install-dir, --prefix, or

the distutils default setting) was:


    /Library/Python/2.7/site-packages/


Perhaps your account does not have write access to this directory?  If the

installation directory is a system-owned directory, you may need to sign in

as the administrator or "root" account.  If you do not have administrative

access to this machine, you may wish to choose a different installation

directory, preferably one that is listed in your PYTHONPATH environment

variable.


For information on other options, you may wish to consult the

documentation at:


  https://pythonhosted.org/setuptools/easy_install.html


Please make the appropriate changes for your system and try again.



권한이 없어서 실행할 수 없다는 에러메시지 확인할 수 있다. permission을 주기 위해 sudo를 사용한다. 

> sudo python setup.py install


Kim-ui-MacBook-Air:beautifulsoup4-4.6.0 kkk$ sudo python setup.py install

Password:


정상적으로 설치 완료!

이제 파이썬으로 들어가서 설치여부를 확인해보면 된다. 다음 명령이 아무 문제 없이 실행된다면, 정상적으로 설치완료

>>> from bs4 import BeautifulSoup


[파이썬 Python] 파이썬으로 크롤링 도전하기

Posted by 두두오빠
2017. 9. 6. 22:23 프로그래밍/파이썬 Python

데이터를 가공하는 부분에 관심을 가지면서, 수집하는 것을 조금 더 효율적으로 할 수 있는 방법에 대해서 찾아보게 되었다. 평소에 사용하는 Java 언어를 가지고도 구현 가능하다는 것을 알았다. 우연찾게 찾은 내용은 JavaScript 를 사용해서 구현 가능하다는 것이었다. 해당 내용에 대해서 더 많은 정보를 찾기 위해서 들린 도서관에서, 파이썬으로 크롤링하는 것을 설명해주는 책을 찾았다.


이전부터 파이썬이 데이터 수집하는 부분에서는 많이 쓰인다고 들었는데, 평소에 사용하지 않는 프로그래밍 언어라 쉽게 접해볼 수가 없었다. 하지만 목적이 분명하게 생기니, 한번 해볼까 하는 생각이 들었다.


그래서 시작했다. 지하철로 출퇴근하는 30분동안, 도서관에서 빌린책을 읽었다. 프로그래밍 관련 책들이 갖는 뻔한 레퍼토리처럼, 처음에는 해당 언어의 문법이 가득했다. 하지만, 문법이 다른 언어들과 다른 부분이 전혀 없었다. 전에 objective-c를 공부하면서, ios개발을 잠시 했을때는 책을 이해하는 것도 많이 생소했었다. 그런데 이번 책은 술술 읽혀나갔다.


그리고 목적은 크롤링이기 때문에, 기본 문법들은 쉽게 지나갔다. 실제 코딩을 해보는 시간은 없었지만, 내용을 이해하면서 책 한권을 일주일도 안되서 끝냈다. 이제 실제 프로그래밍을 해보면서, 더 많은 것을 알아갈 수 있지 않을까 싶다.


파이썬으로 크롤링에 도전해보자.