2013-09-25 7 views
0

Ma question est similaire à celle posée ici: https://stackoverflow.com/questions/14599485/news-website-comment-analysis Je suis en train d'extraire des commentaires de tout article de nouvelles. Par exemple. J'ai une URL de nouvelles ici: http://www.cnn.com/2013/09/24/politics/un-obama-foreign-policy/ J'essaye d'employer BeautifulSoup en python pour extraire les commentaires. Cependant, il semble que la section de commentaire soit incorporée dans un iframe ou chargée via javascript. L'affichage de la source via firebug ne révèle pas la source de la section des commentaires. Mais visualiser explicitement la source des commentaires à travers la fonction view-source du navigateur. Comment procéder pour extraire les commentaires, en particulier lorsque les commentaires proviennent d'une autre URL intégrée à la page d'actualités?Extrait des commentaires des articles de nouvelles

C'est ce que je l'ai fait jusqu'à présent, bien que ce n'est pas grand-chose:

import urllib2 
    from bs4 import BeautifulSoup 

    opener = urllib2.build_opener() 


    url = ('http://www.cnn.com/2013/08/28/health/stem-cell-brain/index.html') 


urlContent = opener.open(url).read() 
soup = BeautifulSoup(urlContent) 
title = soup.title.text 

print title 
body = soup.findAll('body') 
outfile = open("brain.txt","w+") 
for i in body: 
    i=i.text.encode('ascii','ignore') 
    outfile.write(i +'\n') 

Toute aide à ce que je dois faire ou comment aller à ce sujet sera très appréciée.

+0

Vous aurez besoin d'essayer quelque chose comme sélénium à imiter les capacités javascript du navigateur aussi. –

+0

@SnakesandCoffee vous n'avez pas besoin de js pour le cas spécifique. C'est juste un iframe, vous pouvez télécharger toute la page. –

Répondre

0

son intérieur iframe. vérifier une image avec id="dsq2".

maintenant le iframe a un src attr qui est un lien vers le actual site qui a les commentaires.

donc dans une belle soupe: css_soup.select("#dsq2") et obtenir l'URL de l'attribut src. cela vous mènera à une page qui n'a que des commentaires.

pour obtenir les commentaires réels, une fois que vous obtenez la page de src vous pouvez utiliser ce sélecteur CSS: .post-message p

et si vous voulez charger plus commentaire, lorsque vous cliquez pour plus des commentaires des boutons, il semble être envoyer ceci:

http://disqus.com/api/3.0/threads/listPostsThreaded?limit=50&thread=1660715220&forum=cnn&order=popular&cursor=2%3A0%3A0&api_key=E8Uh5l5fHZ6gD8U3KycjAIAk46f68Zw7C6eW8WSjZvCLXebZ7p0r1yrYDrLilk2F

Questions connexes