-
카테고리
-
세부 분야
데이터베이스
-
해결 여부
미해결
안녕하세요 강사님.
20.04.12 20:23 작성 조회수 120
0
많은 질문에 항상 친절히 답변해주셔서 감사합니다.
오늘은
[실전] 크롤링과 데이터베이스 - 크롤링 데이터 DB 자동 저장 코드와 팁1 강의에서 provider 데이터까지 추출하는 부분에서 궁금증이 생겨 질문드립니다. 아래 강사님이 작성하신 코드 중에서
provider = soup.select_one('div.item-info_headline > p > a > strong') 처럼 select_one을 한 경우에는 정상적으로 출력되고 _one 없이 select를 하면 오류가 생기는 점을 발견했습니다.
strong 태그 div.item-info_headline 하위 태그에 strong 태그는 하나 밖에 없기때문에, select만 써도 괜찮다고 생각하였는데 오류가 난 점이 의문스러워 질문드립니다.
오늘도 즐거운 하루되셨길 바라겠습니다.
product_link = item.select_one('div.thumb > a')
item_code = product_link.attrs['href'].split('=')[1]
res = requests.get(product_link.attrs['href'])
soup = BeautifulSoup(res.content, 'html.parser')
provider = soup.select_one('div.item-info_headline > p > a > strong')
if provider == None:
provider = ''
else:
provider = provider.get_text()
처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
-------------------------------------------------------------------
강의실 바로가기
답변을 작성해보세요.
0
잔재미코딩 DaveLee
지식공유자2020.04.16
문의하신 부분으 select_one 으로는 추출이 되는데, select 로는 추출이 안된다고 하신거죠?
그럴리는 없습니다. select 로 하면, 해당 변수는 리스트가 되기 때문에, 확인 방법이 다를 뿐이라고 보여져요.
리스트는 가볍게 for 구문으로 각 아이템을 빼내서 확인하셔야 합니다.
lists = select('ul')
for item in lists:
print(item.get_text())
와 같은 형태로 리스트는 추출방법이 다릅니다.
파이썬 문법과 관련한 부분이라 이런 부분들은 다음 강의를 통해 역량을 쌓으실 수 있으실 꺼예요
답변 1