작성
·
158
0
1. (해당부분 있는 링크)http://item.gmarket.co.kr/Item?goodscode=2084749991&ver=637773347390774517
2. (해당부분 없는 링크)http://item.gmarket.co.kr/Item?goodscode=1679212119&ver=637773347390774517
질문사항: 상품 목록에 들어가서보니 어떤 품목은 빨간색으로 표시되어있는 부분이 있는 반면 일부 품목에서는 저 부분(태그가) 없는 것들도 있었습니다. 이럴 경우에는 어떻게 처리해야하나요?
(결론적으로 string, get_text()로 변환해서 엑셀에 저장하고 싶은데 중간중간 None값이 있어서(태그가 없는 것들) string이나get_text()가 불가한 상태입니다.)
방법이 여러가지가 있을 것 같은데.. 대표적인 방법은 한가지만 말씀해주시고.. 그 외에 방법도 언급정도만 해주시면 제가
찾아서 공부해보겠습니다.
감사합니다.
--------------------------제가 작성한 코드 ------------------------------------------------------
import requests
import openpyxl
from bs4 import BeautifulSoup
excel_file = openpyxl.Workbook()
excel_sheet = excel_file.active
excel_sheet.append(['랭킹','상품이름','상품가격','브랜드','링크'])
res = requests.get('http://corners.gmarket.co.kr/Bestsellers?viewType=G&groupCode=G06')
soup = BeautifulSoup(res.content, 'html.parser')
link = soup.select('div.best-list')
link = link[1]
item_info = link.select('ul > li')
for index, i in enumerate(item_info):
item_name = i.select_one('a.itemname')
item_price = i.select_one('div.s-price strong')
item_href = item_name['href']
item_seperate = requests.get(item_href)
item_seperate_soup = BeautifulSoup(item_seperate.content, 'html.parser')
item_seperate_data = item_seperate_soup.find('p', class_='shoptit').find('span', class_='text')
print(index+1, item_name.string, item_price.string, item_seperate_data, item_href)
결론: item_seperate_data를 string이나 get_text()로 추출하고 싶으나 None값이 섞여 있어서 불가능한 상태
답변 1
0
안녕하세요. 우선 각자의 코드를 봐드리는 부분은 양해를 부탁드려요. 평생 강의이고, 본 질문/답변은 당연히 본 강의 영상에 이슈가 있어서 진행이 안될 때를 도와드리기 위함이기도 하니까요.
가볍게만 말씀드리면, 특정 태그의 내용이 없어서 None 일 경우는 가볍게 해당 객체가 None 인지를 조건문등으로 체크하셔서, 예외처리를 하시는 방법을 쓰시거나, try, except 와 같은 파이썬 예외 처리 문법을 써서, 에러가 날 경우는 except 에서 처리를 한다든지 하는 방법을 쓰시면 어떠실까 합니다.
if object == None:
...