soup.find("tagName", { "id" : "articlebody" })
왜 이것이 <div id="articlebody"> ... </div>
사이에 태그와 물건을 반환하지 않습니까? 아무것도 반환하지 않습니다. 그리고 나는 그것이 바로 그것을 쳐다보고 있기 때문에 그것이 존재한다는 것을 알고 있습니다.
soup.prettify()
soup.find("div", { "id" : "articlebody" })
또한 작동하지 않습니다.
( 편집 : BeautifulSoup이 내 페이지를 올바르게 구문 분석하지 않는 것으로 나타났습니다 . 구문 분석하려는 페이지가 SGML 등으로 올바르게 포맷되지 않았 음을 의미합니다)
답변
코드가 제대로 작동하므로 예제 문서를 게시해야합니다.
>>> import BeautifulSoup
>>> soup = BeautifulSoup.BeautifulSoup('<html><body><div id="articlebody"> ... </div></body></html')
>>> soup.find("div", {"id": "articlebody"})
<div id="articlebody"> ... </div>
<div>
내부에서 <div>
s를 찾는 것도 효과가 있습니다.
>>> soup = BeautifulSoup.BeautifulSoup('<html><body><div><div id="articlebody"> ... </div></div></body></html')
>>> soup.find("div", {"id": "articlebody"})
<div id="articlebody"> ... </div>
답변
그것으로 요소를 찾으려면 id
:
div = soup.find(id="articlebody")
답변
Beautiful Soup 4는 이 메소드 를 사용하여 대부분의 CSS 선택기 를 지원 하므로 다음 과 같은 선택기를 사용할 수 있습니다 ..select()
id
soup.select('#articlebody')
요소 유형을 지정해야하는 경우 선택기 앞에 유형 선택기 를 추가 할 수 있습니다 id
.
soup.select('div#articlebody')
이 .select()
메소드는 요소 콜렉션을 리턴하므로 다음 .find_all()
메소드 예제 와 동일한 결과를 리턴합니다 .
soup.find_all('div', id="articlebody")
# or
soup.find_all(id="articlebody")
단일 요소 만 선택하려면 다음 .find()
방법을 사용하십시오 .
soup.find('div', id="articlebody")
# or
soup.find(id="articlebody")
답변
‘div’태그가 너무 많이 중첩 된 경우 문제가 있다고 생각합니다. 페이스 북 html 파일에서 일부 연락처를 구문 분석하려고하는데 Beautifulsoup이 “fcontent”클래스의 “div”태그를 찾을 수 없습니다.
이것은 다른 클래스에서도 발생합니다. 일반적으로 div를 검색하면 중첩되지 않은 div 만 바뀝니다.
html 소스 코드는 친구 (친구가 아닌)의 친구 목록에있는 페이스 북의 모든 페이지가 될 수 있습니다. 누군가 그것을 테스트하고 조언을 줄 수 있다면 정말 감사하겠습니다.
이 코드는 “fcontent”클래스를 사용하여 “div”태그 수를 인쇄하려고합니다.
from BeautifulSoup import BeautifulSoup
f = open('/Users/myUserName/Desktop/contacts.html')
soup = BeautifulSoup(f)
list = soup.findAll('div', attrs={'class':'fcontent'})
print len(list)
답변
아마도 기본 beautifulsoup 파서에 문제가있을 수 있습니다. ‘lxml’과 같은 다른 구문 분석기를 변경 한 후 다시 시도하십시오.
답변
beautifulsoup 소스에서이 행은 div가 div 내에 중첩되도록합니다. lukas의 의견에 대한 귀하의 우려는 유효하지 않습니다.
NESTABLE_BLOCK_TAGS = ['blockquote', 'div', 'fieldset', 'ins', 'del']
내가해야 할 일은 원하는 속성을 지정하는 것입니다.
source.find('div', attrs={'id':'articlebody'})
답변
당신은 시도 soup.findAll("div", {"id": "articlebody"})
했습니까?
미친 듯이 들리지만 야생에서 물건을 긁어 모으는 경우 여러 div를 배제 할 수 없습니다 …