BeautifulSoup을 사용하여 속성 값에 액세스
BeautifulSoup 및 다음 코드를 사용하여 특정 입력 태그에서 값 속성을 추출하려고 할 때:
import urllib f = urllib.urlopen("http://58.68.130.147") s = f.read() f.close() from BeautifulSoup import BeautifulStoneSoup soup = BeautifulStoneSoup(s) inputTag = soup.findAll(attrs={"name": "stainfo"}) output = inputTag['value'] print str(output)
오류 발생: TypeError: 목록 인덱스는 정수여야 합니다. str.
BeautifulSoup의 문서에서는 이러한 시나리오에서 문자열이 문제를 일으키지 않아야 한다고 제안합니다. 그러나 오류는 그렇지 않다는 것을 나타내는 것 같습니다.
해결 방법
문제는 발견된 모든 요소의 목록을 반환하는 .findAll()의 사용에 있습니다. 특정 태그의 값 속성에 액세스하려면 다음 접근 방식을 사용해야 합니다.
.findAll() 대신 .find_all()을 사용하세요.
.find_all()은 발견된 모든 요소의 목록을 반환하는 반면, .find_all()은 발견된 요소 중 하나만 반환합니다. 요소.
목록에 있는 첫 번째 요소의 값 속성에 액세스합니다.
BeautifulSoup은 발견된 요소 목록을 반환하므로 다음이 필요합니다. 액세스하려는 요소의 인덱스를 지정합니다. 이 경우 목록에 있는 첫 번째 요소의 값 속성은 다음을 통해 액세스할 수 있습니다.
output = inputTag[0]['value']
또는 .find()를 사용하여 첫 번째 요소를 가져옵니다.
.find_all() 대신 .find()를 사용하여 직접 가져올 수 있습니다. 처음 발견된 요소:
inputTag = soup.find(attrs={"name": "stainfo"}) output = inputTag['value']
위 내용은 BeautifulSoup의 `findAll()` 또는 `find_all()`에서 반환된 목록에서 속성 값에 올바르게 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!