복붙노트

[PYTHON] 아름다운 스프 결과에 누락 된 부분

PYTHON

아름다운 스프 결과에 누락 된 부분

다음 html 코드에서

태그를 검색하려고합니다. 여기에 그것의 일부만있다.

<td class="eelantext">
    <a class="fBlackLink"></a>
    <center></center>
    <span> … </span><br></br>
    <table width="402" vspace="5" cellspacing="0" cellpadding="3" 
        border="0" bgcolor="#ffffff" align="Left">
    <tbody> … </tbody></table>
      <!--edstart-->
    <p> … </p>
    <p> … </p>
    <p> … </p>
    <p> … </p>
    <p> … </p>
</td>

여기에서 웹 페이지를 찾을 수 있습니다.

내 파이썬 코드는 다음과 같다.

soup = BeautifulSoup(page)
div = soup.find('td', attrs={'class': 'eelantext'})
print div
text = div.find_all('p') 

그러나 텍스트 변수는 비어 있으며 div 변수를 출력하면

태그를 제외하고 위와 똑같은 html을가집니다.

해결법

  1. ==============================

    1.BeautifulSoup는 다른 파서를 사용하여 HTML 입력을 처리 할 수 ​​있습니다. 여기에 입력 한 HTML은 약간 손상되어 있으며 기본 HTMLParser 파서는이를 잘 처리하지 못합니다.

    BeautifulSoup는 다른 파서를 사용하여 HTML 입력을 처리 할 수 ​​있습니다. 여기에 입력 한 HTML은 약간 손상되어 있으며 기본 HTMLParser 파서는이를 잘 처리하지 못합니다.

    대신 html5lib 파서를 사용하십시오.

    >>> len(BeautifulSoup(r.text, 'html').find('td', attrs={'class': 'eelantext'}).find_all('p'))
    0
    >>> len(BeautifulSoup(r.text, 'lxml').find('td', attrs={'class': 'eelantext'}).find_all('p'))
    0
    >>> len(BeautifulSoup(r.text, 'html5lib').find('td', attrs={'class': 'eelantext'}).find_all('p'))
    22
    
  2. from https://stackoverflow.com/questions/18614305/missing-parts-on-beautiful-soup-results by cc-by-sa and MIT license