[TIL]미니프로젝트_Day2

지냐킴·2022년 7월 17일
0

항해99 8기 TIL/WIL

목록 보기
2/41
post-thumbnail

22.07.12. 화요일

🚀 TIL

  • 셀리니움으로 스크래핑하기
    동적인 웹페이지를 스크래핑할 때는 브라우저에 띄운 후 소스코드를 가져와야한다.
    단순한 HTML 뿐만 아니라 스크롤, 버튼 클릭 등 다양한 동작을 할 수 있다.
    기본코드
from bs4 import BeautifulSoup
from selenium import webdriver
from time import sleep

driver = webdriver.Chrome('./chromedriver')  # 드라이버를 실행합니다.


url = "https://www.melon.com/chart/day/index.htm"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get(url, headers=headers)

driver.get(url)  # 드라이버에 해당 url의 웹페이지를 띄웁니다.
sleep(5)  # 페이지가 로딩되는 동안 5초 간 기다립니다. 

req = driver.page_source  # html 정보를 가져옵니다.
driver.quit()  # 정보를 가져왔으므로 드라이버는 꺼줍니다.

soup = BeautifulSoup(data.text, 'html.parser')
soup = BeautifulSoup(req, 'html.parser')  # 가져온 정보를 beautifulsoup으로 파싱해줍니다.

songs = soup.select("#frm > div > table > tbody > tr")
print(len(songs))

for song in songs:
    title = song.select_one("td > div > div.wrap_song_info > div.rank01 > span > a").text
    artist = song.select_one("td > div > div.wrap_song_info > div.rank02 > span > a").text
    likes = song.select_one("td > div > button.like > span.cnt").text
    print(title, artist, likes)

💬

  • 모든게 다 안되는 날
    sourcetree 왜 안돼요? 크롤링 왜 안돼요?
    소스트리가 자꾸 튕기는데 알고보니 mac에서는 아주 자주 튕긴다고 나만 못하는 줄 알고 식겁(4명 중에 두명이 맥을 써서 결국 아날로그식으로 합쳤다ㅎㅎ)
    기본강의에서 배운대로 selector, meta tag로 크롤링 하려는데 자꾸 안됐다. 하루종일 씨름하다가 기술 매니저님한테 sos해서 새로운 방법을 알아냈지만 그것도 실패 결국 끝나기 몇 분전에 팀원들한테 도움을 요청했다. 한참 각자들 자기 분량하기 바빠보여서 눈치보고 부탁했는데 너무 친절히 도와주셨다. 이것이 팀플이지! 셀리니움으로 해야해서 내일 다시 도전해보기로
profile
코린이일기

0개의 댓글

관련 채용 정보