찾다

 >  Q&A  >  본문

웹 스크래핑에서 코드가 반복을 건너뛸 수 있나요? IndexError: 팝업 인덱스가 범위를 벗어났습니다.

그래서 (지금까지) 14페이지에서 광물의 이름+가격을 제거하고 .txt 파일에 저장하는 코드가 있습니다. 처음에는 Page1만 사용해 보더니 더 많은 데이터를 얻기 위해 더 많은 페이지를 추가하고 싶었습니다. 그러나 코드는 해서는 안되는 임의의 이름/문자열을 포착합니다. 나는 그것이 그것을 잡을 것이라고 기대하지 않았지만 그것은 그것을 얻었고 이것에 잘못된 가격을 할당했습니다! 이는 광물에 "예기치 않은 이름"이 있고 목록의 나머지 전체 가격이 잘못된 후에 발생합니다. 아래를 참조하세요:

따라서 이 문자열은 다른 문자열과 다르기 때문에 추가 코드에서는 이를 분할할 수 없으며 오류가 발생합니다.

으아아아

저는 이 오류를 무시하고 다른 Stackoverflow 페이지에서 사용되는 방법 중 하나를 사용하려고 했습니다.

으아아아

실제로는 작동했고 오류도 발생하지 않았습니다... 그런데 (제가 봤듯이) 잘못된 광물에 잘못된 가격이 할당되었습니다! 이러한 "이상한" 이름을 무시하고 목록을 계속 사용하도록 코드를 어떻게 변경할 수 있습니까? 아래는 전체 코드입니다. URL5에서 중지되고 다음 팝업 색인 오류가 발생한 것으로 기억됩니다.

으아아아

EDIT: 도우미 덕분에 완전히 작동하는 코드는 다음과 같습니다!

으아아아

그러나 일부 변경 후에는 새로운 오류와 함께 중지됩니다. 지정된 속성으로 문자열을 찾을 수 없기 때문에 "IndexError: 빈 목록에서 터지는 중"이라는 오류가 발생합니다... 심지어 soup.select("table tr td font>font" ) "에서와 같이 도움말도 제공했습니다." 이름"

P粉846294303P粉846294303279일 전413

모든 응답(2)나는 대답할 것이다

  • P粉391955763

    P粉3919557632024-02-22 14:52:43

    페이지 매김과 함께 다음 예를 시도해 볼 수 있습니다

    으아아아

    출력:

    으아아아

    회신하다
    0
  • P粉677684876

    P粉6776848762024-02-22 00:54:41

    CSS 선택기를 좀 더 구체적으로 만들어 글꼴 요소 바로 내부에 있는 링크만 식별할 수 있도록 하면 됩니다(몇 수준 아래가 아닌).

    으아아아

    페이지 하단에 링크가 다음/이전 페이지 링크가 아닌 단일 항목을 가리키는 추가 조건을 추가하는 것도 도움이 될 것입니다.

    으아아아

    회신하다
    0
  • 취소회신하다