나는 MS FrontPage에서 생성 된 웹 사이트의 html을 'defrontpagify'하려고하는데, 그것을 수행하기 위해 BeautifulSoup 스크립트를 작성하고 있습니다.BeautifulSoup : 지정된 속성을 제거하지만 태그와 내용을 보존합니다.
그러나 태그가 포함 된 문서의 모든 태그에서 특정 속성 (또는 목록 속성)을 제거하려고하는 부분에 갇혀 있습니다. 코드 스 니펫
REMOVE_ATTRIBUTES = ['lang','language','onmouseover','onmouseout','script','style','font',
'dir','face','size','color','style','class','width','height','hspace',
'border','valign','align','background','bgcolor','text','link','vlink',
'alink','cellpadding','cellspacing']
# remove all attributes in REMOVE_ATTRIBUTES from all tags,
# but preserve the tag and its content.
for attribute in REMOVE_ATTRIBUTES:
for tag in soup.findAll(attribute=True):
del(tag[attribute])
오류없이 실행되지만 실제로는 속성을 제거하지 않습니다. 내가 외부 루프없이 실행하면 바로 하드 하나의 속성 (soup.findAll ('스타일'= true)를 코딩, 그것을 작동
누구나 여기에 문제를 알고 볼
PS -.? 내가 돈 ' 사람이 더 많은 기능,지도/필터 틱 스타일을 알고있는 경우 t 그다지 중첩 루프 등., 나는 그것을보고 싶어요.
'soup.findAll (attribute = True)'가 단순히'soup.findAll()'으로 변경되면 작동한다. – mzjn
좋은 캐치, 실제로 작동합니다. 뒤늦게 보아도 분명히 속성 값을 두 번 확인할 필요는 없습니다. 문제는 문서의 모든 태그의 모든 속성을 확인하고 실행하는 데 2 배의 시간이 걸리지 만 ~ 15 페이지의 경우 5 초와 2.5 초가 중요하지 않습니다. – Kurtosis