inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

HTML 에서 a 태그의 href 만 뽑아오기

381

roseyse04

작성한 질문수 1

0

파이썬으로 왓차피디아 사이트를 크롤링 하려고 하는데요.

requests 랑 Beautifulsoup 모듈을 사용하고 있습니다.

{영화 제목: ~~~,

제작연도 : ~~~,

링크: ~~~}

이렇게 만들고 싶습니다. 근데 링크를 뽑아오는 데서 문제를 겪고 있습니다.

 

보시다시피 아래에서 두 번째 줄에서 리스트 컴프리헨션을 활용했는데요.

soup_links 에 데이터가 비어서 나옵니다.

웹에서 개발자 도구로 확인했는데도 저렇게 나오는데 혹시 고수님들 어떻게 해야 링크를 크롤링 할 수 있을까요?

url_watcha = "https://pedia.watcha.com/ko-KR"
req_watcha = requests.get(url_watcha)
html = req_watcha.text

soup = BeautifulSoup(html, "lxml")

soup_titles = soup.select("div.css-1ntmtyn-ContentTitle-makeTypeFunction-handleHorizontalUlRender")
soup_year_countries = soup.select("div.css-zb5qbk-StyledContentYearAndNation-createMediaQuery-makePediaTypeFunction")
soup_links = soup.select("li.css-1ofozqs.ei3ci1h10 > a")

titles = [t.get_text(strip=True) for t in soup_titles[:10]]
year_countries = [y.get_text(strip=True) for y in soup_year_countries[:10]]
links = [l["href"] for l in soup_links]
time.sleep(1)

크롤링 crawling html 파이썬 code

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

링크 데이터가 비어서 나오는 문제를 겪고 계시군요. roseyse04님의 코드를 보니 soup_links에 데이터가 제대로 세팅되지 않은 것 같습니다. select 메서드를 이용할 때 적절한 CSS 선택자를 사용하는 것이 중요합니다. 실제 해당 웹 사이트의 HTML 구조가 어떠한지, a 태그에 어떠한 클래스 또는 속성이 지정되어 있는지를 정확히 확인해야 합니다.

CSS 선택자를 올바르게 지정하지 않아 데이터가 비어 나올 수 있습니다. 개발자 도구에서 a 태그의 정확한 위치를 파악하여 올바른 선택자를 사용하여야 합니다. 예를 들어, a 태그가 특정 class를 가진 div 태그의 자손이라면 soup.select('div.some-class a')의 형태로 사용해야 합니다.

또 다른 가능성으로는 해당 링크가 JavaScript로 동적으로 생성되어서 BeautifulSoup로는 추출이 불가능한 경우도 있습니다. 이 경우 Selenium과 같은 도구를 사용하여 실제 브라우저에서 웹 페이지를 렌더링한 후 링크를 추출해야 할 수도 있습니다.

단, 제공된 코드에는 time.sleep(1)의 코드가 있지만 이는 연속된 HTTP 요청 사이에 지연을 주기 위한 것으로 보입니다. 이 코드만으로는 동적으로 로딩되는 컨텐츠를 기다리지 않습니다.

마지막으로, 웹 크롤링은 해당 웹 사이트의 서버에 부하를 줄 수 있으며, 저작권 문제나 이용 약관에 위반될 수 있으므로 주의하여 사용하시기 바랍니다. 크롤링을 실시하기 전에 반드시 해당 사이트의 이용 약관을 확인하시기 바랍니다.

강의자료가 너무 이쁘네요... 어떻게 만드셨는지 알 수 있을까요..?

0

145

1

새로운 개발환경 조합 Next.js + Supabase

0

92

2

크롤링 관련 질문

0

111

1

아나콘다 윈도우즈 설치 시, 다른 설치만 보입니다.

0

378

2

border 선 겹침 현상

0

179

1

[CSS 01-2-2] flex-wrap 한 칸 띄고 다음 줄로 넘어가는 현상...

0

239

2

3-2강 코드로 작성하지 않은 박스가 표시됩니다...?

0

162

2

[진짜 쉬운 책 추천] 크롤링부터 너무 어렵네여

0

305

1

과제 완료

0

257

2

2강 - Http 응답 데이터 - Html 질문

0

177

1

자바스크립트 함수가 실행되지 않습니다.

0

488

2

CreateView에 html 코드가 어떻게 적용되는 걸까요?

0

374

1

html input 태그에 readonly 속성 넣었을 때 배경이 회색으로 바뀌는 이유가 무엇인가요?

0

2721

1

[2-4 숲속의기사]

0

413

1

시트 이름 지정하려는데 title 명령이 안 먹혀요

0

386

1

'code' 질문입니다

0

173

1

CSS정렬 - 회원가입 폼 만들기 과제 질문

0

1006

2

중간중간 html 작성 코드가 안보여서 불편합니다.

0

585

1

item.html에 "저장완료!" 문구 넣을 때 질문 있습니다

1

602

1

container의 이름을 class로 주는 이유

0

495

1

비밀번호가 틀렸을 때 사라지지 않게 하려면 어떻게 수정해야하나요?

0

506

1

wrapper__right__body요소 안에 iframe태그를 사용하는 이유가 궁금합니다.

0

378

1

섹션5 | Javascript 응용과 싸이월드 실습 4탄 복습 학습자료

0

599

1

[17강 25강] Cannot query field "html" on type "MarkdownRemark" 오류

1

629

1