3
저는 프로그래밍에 익숙하지 않고 파이썬으로 웹 스크래핑을 가르치기 시작했습니다. 사이트의 여러 페이지에서 플레이어 데이터를 스크랩하고 while 루프를 작성하여 'next'버튼의 href를 긁어 다음 플레이어의 페이지로 이동합니다. 마지막 플레이어를 사용할 수있게 된 후 while 루프가 깨지는 것을 제외하면 모든 것이 정상적으로 작동합니다. '다음'버튼이 회색으로 표시되고 그 뒤에 링크가 없으므로 반복을 중지하고 모든 것을 CSV로 저장하려고합니다. 그러므로 확인 및 파괴 '아무도 없다', 내가 검색된 HREF이 비어있는 경우 내가 확인할 수 있습니다 생각NoneType을위한 변수를 확인하고 while 루프를 깨기.
#name base url and first page to start
BaseUrl = #url
PageUrl = #also url
while True:
#scraping tables
try:
# retrieve link for 'next' player in order
link = soup.find(attrs={"class": "go_to_next_player"}).get('href')
# join base url and new link href
PageUrl = BaseUrl + link
if link is None:
break
except IndexError as e:
print(e)
break
#writing to csv
,하지만 난이 오류를 얻을 :
내 스크립트는 다음과 같습니다
In line > PageUrl = BaseUrl + link
TypeError: must be str, not NoneType
을
도움을 주시면 대단히 감사하겠습니다! 나는 이것에 아주 새롭다, 그래서 나의 초심자 부호를 무시하십시오.
왜 그냥'링크가 없음없는 경우 :'link'의 사용 위의 break'? – BallpointBen
그것은 OP의 원하는 대답과 더 유사하기 때문에 실제로는 더 나은 대답이 될 것입니다. 나는 이것을 가독성 목적으로 썼다. –