0
웹 페이지의 다음 페이지를 긁어 내려고합니다. 총 20 페이지입니다. 첫 페이지의 URL을 사용하여 다음 페이지를 긁어 내고 싶습니다.파이썬의 "다음 페이지"긁힘
코드 :
b=[]
url="https://abcde.com/cate6-%E7%BE%8E%E5%A6%9D%E4%BF%9D%E9%A4%8A/"
res=requests.get(url)
soup = BeautifulSoup(res.text,"lxml")
b.append(url)
while True:
try:
dct = {"data-icon":"k"}
url=soup.find('',dct)
url=(url['href'])
print(url)
except TypeError:
break
if url:
url=("https://abcde.com"+url)
print(url)
b.append(url)
print(b)
다음 페이지의 HTML :
<li class="next"><a href="https://abcde.com/cate6-%E7%BE%8E%E5%A6%9D%E4%BF%9D%E9%A4%8A/?p=2" data-icon="k">next page</a></li>
마지막 페이지의 HTML :
<li class="next disabled"><a href="" data-icon="k">next page</a></li>
그것은 단지 첫 페이지의 URL을 출력합니다.
안녕하세요! 당신의 답변에 감사드립니다. 당신이 코드를 인쇄 : 페이지에서 URL 구문 분석 후 루프를 떠나는 데 실패했습니다. 루프 바깥 쪽. [ 'https://abcde.com/cate6-%E7%BE%8E%E5%A6%9D%E4%BF%9D%E9%A4%8A/']하지만 내 문제는 다음 페이지에서 url을 읽으십시오. 아마도 코드에서 "try"오류가 발생했을 것입니다. – Makiyo
@Makiyo이 경우, print 문을 가진 예외 처리기에'traceback.print_exc()'를 삽입하는 것이 좋습니다. 아마도'lxml'은 find 명령을 실패하게 만드는 페이지를 파싱하기위한 부적절한 선택입니까? 나는 아름다운 수프를 몇 년 동안 사용하지 않았기 때문에 학사 특유의 것들에 대한 나의 기억은 흐릿합니다. – SpencerD