파이썬 크롤링 관련 질문
조회수 804회
안녕하세요 파이썬에 대해 처음부터 막 배우고 있는 단계에서 웹페이지 정보를 크롤링 하는 도중 막히는 부분이 있어 질문 드립니다. 구글링을 나름 열심히 해보았는데 뾰족한 수를 찾지 못해 도움을 요청 드려 봅니다.
질문 . 아래 코드를 돌리니 Response 코드가 200인 것 중에서 URL 정보가 없는 것들은 명칭이나 전화번호가 있더라도 결과 전체가 None으로 출력 이 됩니다. 예외처리 부분이 아무래도 잘못 된거 같은데... URL정보만 None으로 출력 하려면 어떻게 수정해야하는지 궁금합니다.
@@ (return find_nm.text, find_cat.text, find_tell.text, find_adr.text, find_url.text) 이 부분의 text를 빼면 너무 잡다한 정보가 많이 들어와서 유지하고 싶습니다.
//
import requests
from bs4 import BeautifulSoup
def crawl(url):
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'}
data = requests.get(url=url , headers=headers)
print(data,"/", url,"/",end = ' ')
return data.content
def parse(pageString):
try :
bsObj = BeautifulSoup(pageString, "html.parser")
#명칭
find_nm = bsObj.find("strong",{"class" : "name"})
#카테고리
find_cat = bsObj.find("span", {"class" : "category"})
#전화번호
find_tell = bsObj.find("div", {"class": "txt"})
#주소
find_adr = bsObj.find("span", {"class": "addr"})
# 홈페이지
find_url = bsObj.find("a", {"class": "biz_url"})
return find_nm.text, find_cat.text, find_tell.text, find_adr.text, find_url.text
except :
pass
def printCompanyInfo(code):
url = "https://store.naver.com/restaurants/detail?id={}".format(code)
pageString = crawl(url)
companyInfo = parse(pageString)
print(companyInfo)
printCompanyInfo("33696029")
printCompanyInfo("13317484")
printCompanyInfo("32287256")
printCompanyInfo("37322689")
printCompanyInfo("36772108")
printCompanyInfo("413454114")
printCompanyInfo("31621852")
printCompanyInfo("13303181")
printCompanyInfo("37127150")
printCompanyInfo("34565498")
//
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력