티스토리 뷰
참조 사이트 :
http://dplex.egloos.com/category/Python : BeautifulSoup 예제
http://lxml.de : lxml 라이브러리로 대량의 파일 처리 가능
--- BeautifulSoup 실행 전 준비작업 ---
1) Install requests C:\>pip install requests
2) BeautifulSoup을 설치 C:\>easy_install beautifulsoup4 <--- 파이썬3 용
3) http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 에서 각자 설치한 python 버전에 맞는 lxml 파일을 다운받아 압축을 푼 후 ~\Lib\site-packages에 해당 폴더를 붙여넣기 해 준다.
예제1
import requests
from bs4 import BeautifulSoup
def spider():
base_url = "http://www.naver.com/index.html"
#storing all the information including headers in the variable source code
source_code = requests.get(base_url)
#sort source code and store only the plaintext
plain_text = source_code.text
print(plain_text)
#converting plain_text to Beautiful Soup object so the library can sort thru it
convert_data = BeautifulSoup(plain_text, 'lxml')
#sorting useful information
for link in convert_data.findAll('a', {'class': 'h_notice'}):
href = base_url + link.get('href') #Building a clickable url
title = link.string #just the text not the html
print(href) #displaying href
print(title) #displaying title
spider()
예제2 - BeautifulSoup 기반의 네이버 인기검색어 출력하기
from bs4 import BeautifulSoup
from urllib.request import urlopen
html = urlopen("http://naver.com")
soup = BeautifulSoup(html.read(), "lxml")
for row in soup.find_all("ol"):
#print(row)
for i in range(11):
try:
li = row.find_all("li", attrs={"value":str(i)})
st1 = str(li).split(">")[1]
st2 = st1.split("title=")[1] #인터파크 등의 인기검색어
print("%d => %s" % (i, st2))
except:
print("--- 네이버 인기 검색어 ---")
더 많은 설명 :
https://www.crummy.com/software/BeautifulSoup/bs3/documentation.html
'공부 > Python' 카테고리의 다른 글
Python Semaphore(Thread) (0) | 2016.12.15 |
---|---|
Python Closure 함수 (0) | 2016.12.15 |
PyQt (0) | 2016.12.15 |
Numpy, Scipy, Pandas, Matplotlib 설치 (0) | 2016.11.28 |
윈도우, python3.x 에서 Django 설치 (0) | 2016.11.23 |