파이썬으로 웹페이지 스크래핑(Beautiful Soup)
5551 단어 파이썬Python3스크래핑BeautifulSoup
전치
O'Reilly Japan의 「Python과 JavaScript로 시작하는 데이터 비주얼라이제이션」을 참고로 공부하고 있습니다.
이번에는 Beautiful Soup을 사용하여 웹 페이지의 간단한 스크래핑을 실시합니다.
Beautiful Soup으로 스크래핑
Yahoo! JAPAN 페이지의 뉴스란에 표시되어 있는 기사의 타이틀을 취득해 보겠습니다.
Chrome Developer Tools에서 스크래핑 당시 태그 및 속성 정보를 확인할 수 있는 캡처를 아래에 첨부합니다.
사전 준비
pip install beautifulsoup4
pip install lxml
함수 작성
웹 페이지를 BeautifulSoup 객체로 가져오는 함수
bsoup4.pyfrom bs4 import BeautifulSoup
import requests
ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)" \
"AppleWebKit/537.36 (KHTML, like Gecko)" \
"Chrome/60.0.3112.113"
def get_soup(url):
response = requests.get(url, headers={"User-Agent": ua})
return BeautifulSoup(response.content, "lxml")
User-Agent 속성을 설정하지 않으면 Yahoo! JAPAN에서 간단한 웹 페이지를 반환했습니다.
이 속성을 설정하지 않은 경우 Wikipedia 등과 같이 요청을 거부하는 페이지도 있는 것 같습니다.
웹페이지 스크래핑 구현
>>> import bsoup4
>>>
>>> # BeautifulSoupオブジェクトの取得
>>> soup = bsoup4.get_soup('https://www.yahoo.co.jp/')
>>> # BeautifulSoupオブジェクトから、ニュース欄部分を抽出
>>> topicsfb = soup.find_all('div', attrs={'id':'topicsfb'})
>>> # ネストしているタグから、必要なデータを抽出
>>> for topic in topicsfb:
... for ultags in topic.find_all('ul', attrs={'class':'emphasis'}):
... for atags in ultags.find_all('a'):
... print(atags.text)
...
新党合流 同調者に自民不安写真
現職堺市長3選 都構想に打撃写真NEW
6階から転落か 1歳女児が死亡動画
独に絶望 帰国する難民たち動画NEW
発売30年 糸ようじの試行錯誤写真NEW
中日岩瀬&荒木 コーチ兼任に写真NEW
元体操選手 田中理恵さん妊娠写真
だんじり 宮川大輔圧倒される写真
※Web페이지의 아이콘 부분의 문자가 출력되어 버리고 있습니다.
참고
Beautiful Soup 문서
htp // //t c.んふぉ/베아우치후 lso p/
Reference
이 문제에 관하여(파이썬으로 웹페이지 스크래핑(Beautiful Soup)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Amtkxa/items/55bf9028a45d98150751
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Yahoo! JAPAN 페이지의 뉴스란에 표시되어 있는 기사의 타이틀을 취득해 보겠습니다.
Chrome Developer Tools에서 스크래핑 당시 태그 및 속성 정보를 확인할 수 있는 캡처를 아래에 첨부합니다.
사전 준비
pip install beautifulsoup4
pip install lxml
함수 작성
웹 페이지를 BeautifulSoup 객체로 가져오는 함수
bsoup4.py
from bs4 import BeautifulSoup
import requests
ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)" \
"AppleWebKit/537.36 (KHTML, like Gecko)" \
"Chrome/60.0.3112.113"
def get_soup(url):
response = requests.get(url, headers={"User-Agent": ua})
return BeautifulSoup(response.content, "lxml")
User-Agent 속성을 설정하지 않으면 Yahoo! JAPAN에서 간단한 웹 페이지를 반환했습니다.
이 속성을 설정하지 않은 경우 Wikipedia 등과 같이 요청을 거부하는 페이지도 있는 것 같습니다.
웹페이지 스크래핑 구현
>>> import bsoup4
>>>
>>> # BeautifulSoupオブジェクトの取得
>>> soup = bsoup4.get_soup('https://www.yahoo.co.jp/')
>>> # BeautifulSoupオブジェクトから、ニュース欄部分を抽出
>>> topicsfb = soup.find_all('div', attrs={'id':'topicsfb'})
>>> # ネストしているタグから、必要なデータを抽出
>>> for topic in topicsfb:
... for ultags in topic.find_all('ul', attrs={'class':'emphasis'}):
... for atags in ultags.find_all('a'):
... print(atags.text)
...
新党合流 同調者に自民不安写真
現職堺市長3選 都構想に打撃写真NEW
6階から転落か 1歳女児が死亡動画
独に絶望 帰国する難民たち動画NEW
発売30年 糸ようじの試行錯誤写真NEW
中日岩瀬&荒木 コーチ兼任に写真NEW
元体操選手 田中理恵さん妊娠写真
だんじり 宮川大輔圧倒される写真
※Web페이지의 아이콘 부분의 문자가 출력되어 버리고 있습니다.
참고
Beautiful Soup 문서
htp // //t c.んふぉ/베아우치후 lso p/
Reference
이 문제에 관하여(파이썬으로 웹페이지 스크래핑(Beautiful Soup)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Amtkxa/items/55bf9028a45d98150751텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)