• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

질문이 두가지 있습니다.

23.07.24 23:56 작성 조회수 255

0

CSS selector를 사용하여 크롤링을 하는 방법 강의에서 질문 있습니다.강의는 섹션 4에 3강이구요. 12분 15초부터 진행되는데 지금 강사님이 올려주신 깃허브 코드가 좀 바껴서 그런지 모르겠는데 li.course.paid라는 코드 자체가 없어요. 그래서 제가

(중급) - 자동으로 쿠팡파트너스 API 로 가져온 상품 정보, 네이버 블로그/트위터에 홍보하기 [412] 이 문장을 css selector로는 도저히 크롤링을 못하겠어서 find를 사용해서 크롤링을 시도해봤으나 코드가 안되네요.

 

제가 작성한 코드입니다.(find 함수 사용)

import requests

from bs4 import BeautifulSoup

res = requests.get('https://davelee-fun.github.io/blog/crawl_test')

soup = BeautifulSoup(res.content,'html.parser')

items = soup.find_all('a')

print(items)

먼저 코드를 이렇게 작성해 list형태로 나오는걸 확인 후

 

import requests

from bs4 import BeautifulSoup

res = requests.get('https://davelee-fun.github.io/blog/crawl_test')

soup = BeautifulSoup(res.content,'html.parser')

items = soup.find_all('a')

for title in items:

print(title[15].get_text())

이렇게 진행해보았는데 안됩니다...

질문1, 제가 작성한 코드에 잘못된 점 있을까요?

질문2. 지금 올라와있는 깃허브코드에서

<a href="https://www.fun-coding.org">(중급) - 자동으로 쿠팡파트너스 API 로 가져온 상품 정보, 네이버 블로그/트위터에 홍보하기 [412]</a>

도저히 css selector로 해당 문장만 뽑아내는 방법이 생각이 안납니다.

이것도

import requests

from bs4 import BeautifulSoup

res = requests.get('https://davelee-fun.github.io/blog/crawl_test')

soup = BeautifulSoup(res.content,'html.parser')

items = soup.select('ul#dev_course_list>li.course')

for title in items:

print(title[8].get_text())

이렇게 해보니까 안되네요.

 

답변 2

·

답변을 작성해보세요.

0

jdo5640님의 프로필

jdo5640

질문자

2023.07.25

find_all로는 이렇게
import requests

from bs4 import BeautifulSoup

res = requests.get('https://davelee-fun.github.io/blog/crawl_test')

soup = BeautifulSoup(res.content,'html.parser')

items = soup.find_all('a')

items[15].get_text()


css selector로는 import requests

from bs4 import BeautifulSoup

res = requests.get('https://davelee-fun.github.io/blog/crawl_test')

soup = BeautifulSoup(res.content,'html.parser')

items = soup.select('ul#dev_course_list>li.course')

items[8].get_text()

이런식으로 작성하니까 해결되네요;;

다해놓고 마지막 코드를 이상하게 작성하고 있었네요..

그럼 제가 이런식으로 코드를 짜는건 제대로 한게 맞겠죠?

0

jdo5640님의 프로필

jdo5640

질문자

2023.07.25

아...for문을 돌리면 list형태에서 벗어난다는걸 까먹었네요,, 문자열로 바뀌는거죠?