파이썬 크롤링 좀 도와주세요

파이썬 크롤링 좀 도와주세요

작성일 2023.09.22댓글 1건
    게시물 수정 , 삭제는 로그인 필요

제가 https://www.premierleague.com/tables
이 사이트의 테이블을 크롤링 해와서
각 행마다 축구팀의 이름, 랭킹, 승점을 가져와서 변수에 넣는 것을 반복하고 싶은데요..

그래서
import urllib.request
from bs4 import BeautifulSoup

# 웹 페이지 URL
page = urllib.request.urlopen("https://www.premierleague.com/tables")
soup= BeautifulSoup(page, 'html.parser')


table=soup.find('tbody', {'class': "league-table__tbody isPL"})
for tr in table.find_all('tr'):                                                <--- 에러뜨는 부분
    trank=tr.find('span',{'class':"league-table__value value"})
    if tr.find('span',{'class':"league-table__value value"}):
        rank=trank.text
        print(rank)
        

대강 이런식으로 짜봤는데.. 자꾸 AttributeError: 'NoneType' object has no attribute 'find_all' 이 에러가 뜨네요.. 
해결좀 해주세요 ㅠㅠㅠ 기상청 웹사이트는 저런방식으로 크롤링이 잘되는데
이 웹사이트는 안되네요..


#파이썬 크롤링 #파이썬 크롤링 예제 #파이썬 크롤링 selenium #파이썬 크롤링 하는법 #파이썬 크롤링 beautifulsoup #파이썬 크롤링 라이브러리 #파이썬 크롤링 프로그램 #파이썬 크롤링 페이지 넘기기 #파이썬 크롤링 코드 #파이썬 크롤링 로그인

profile_image 익명 작성일 -

NoneType의 값을 읽을 수 없다는 건 위의 조건으로 찾을 수가 없다는 것이고,

html에서 class는 여러개를 사용할 수 있지만 위와 같은 코드에서 class를 다 적으시면 안됩니다.

즉,

table=soup.find('tbody', {'class': "league-table__tbody"})

위와 같이 코드를 바꾸면 tbody를 찾을 수 있습니다.

그럼

ps. 해당 사이트는 BeautifulSoup + Request로 만드는데 문제가 없어보이지만 전체적으로 모든 사이트를 크롤링 하려면 Selenium같은게 좋습니다. 클라이언트 렌더링은 BeautifulSoup으로는 크롤링이 불가능하거든요.

파이썬 크롤링 좀 도와주세요

... com/tables 이 사이트의 테이블을 크롤링... 저런방식으로 크롤링이 잘되는데 이... 사이트를 크롤링 하려면 Selenium같은게 좋습니다....