2014-12-12 2 views
0

나는 facebook의 html 페이지에서 이름을 찾고 있습니다. 이 같은 파일 html.txt을 경우 :Parse FacebookPage BeautifullSoup를 사용하여

나는 확인 될 것으로 보인다 찾을 수와 이름을 검색,하지만 난 BS로 검색하려고하면 내가 아무것도 찾을 수 없습니다 경우
html = open('html.txt','r').read() 
soup = BeautifulSoup(html) 

..

>>>html.find("Joseph Tan") 
98939 
>>>html[98700:99000] 
'<div class="fwn fcg"><span class="fcg"><span class="fwb"><a class="profileLink" href="https://www.facebook.com/ASD.391" data-ft="&#123;&quot;tn&quot;:&quot;l&quot;&#125;" data-hovercard="/ajax/hovercard/user.php?id=123456">Alex Tan</a></span> condivided the photo <a class="profileLink" ' 
>>> soup.findAll('div',{'class':'fwn fcg'}) 
[] 
>>> soup.findAll('span',{'class':'fwb'}) 
[] 
>>> soup.findAll('a',{'class':'profileLink'}) 
[] 
>>> 

누군가 나를 도울 수 있습니까? 덕분에 많은

편집 : 다시 만들어 그것은 다음과 같이 작동하고

html page

+0

샘플 HTML 코드를 공유 할 수 있습니까? –

+0

html 페이지를 다시 만들고 이름을 수정했습니다. 귀하의 도움을 기다리고 메신저 – Gabrio

답변

0

HTML 페이지 :

print soup.find_all('div', class_=['fwn','fcg']) 

OUTPUT: 

[<div class="uiHeaderActions rfloat _ohf fsm fwn fcg"><a class="_1c1m" href="#" role="button">Segna tutti come già letti</a> · <a accesskey="m" ajaxify="/ajax/messaging/composer.php" href="/messages/new/" id="u_0_8" rel="dialog" role="button">Invia un nuovo messaggio</a></div>, <div class="uiHeaderActions fsm fwn fcg"><a href="#" id="u_0_9" role="button">Segna come già letto</a> · <a href="/settings?tab=notifications&amp;section=on_facebook" target="_blank">Impostazioni</a></div>, <div class="fsm fwn fcg"><a ajaxify="/settings/language/language/?uri=https%3A%2F%2Fwww.facebook.com%2Fshares%2Fview%3Fid%3D10152555113196961&amp;source=TOP_LOCALES_DIALOG" href="#" rel="dialog" role="button" title="Usa Facebook in un'altra lingua.">Italiano</a></div>] 

==>this 링크에 따르면,이 클래스를 검색하는 방법의 스타일은 BS를 사용하는 다른 HTML 요소들. 확인해주십시오.

두 가지 문제가있었습니다.

작성한 방법이 내가 제공 한 링크와 일치하지 않습니다. BS의 업데이트 된 버전을 사용하지 않을 수도 있습니다.

2. 두 개의 클래스 'fwn'과 'fcg'가 있습니다. 그래서 당신은리스트에서 그들의 이름을 말해야합니다. 그리고 이것이 출력을 얻는 방법입니다. 이다

같은 '는'아래 '기간'을 적용 할 수 있습니다 :

print soup.find_all('span', class_='jewelCount') 
print soup.find_all('a', class_='_awj') 

귀하의 그들이에 존재하지 않는, found.Because 아니었다 클래스 'fwb''span'을 주어 클래스 'profileLink''a' 제공 HTML.

모든 범위와 a를 인쇄하여 확인할 수 있습니다. print soup.find_all('a')print soup.find_all('span') *자신을 확인하기 위해 작성합니다.

희망이 있으면 도움이 될 것입니다. 그렇지 않다면 다시 작성하십시오! :)

+1

덕분에 아주 veryvery muchh! : D – Gabrio

+0

당신은 가장 환영받는 Gabrio입니다. :) 다른 사람들을 돕기 위해 그런 보완 물을 얻는 것은 정말로 즐거움입니다. : D BTW, 프로젝트의 목적은 무엇입니까? 어떤 문제도 없으면 나와 공유하십시오 : "[email protected]"저는 또한 파이썬을 배우고 있습니다. 우리는 서로를 지원할 수 있습니다 :) –

+0

나는 ua 메일을 보냈습니다. 나는 초보자입니다. >. <하지만 내가 도와 줄 수있는 경우 가끔 나는 당신을 사랑합니다! 그리고 나는 너를 도울 수있는 일을 할 것이다. – Gabrio