从songmeanings.com访问HTML中的所有文本

时间:2017-05-04 14:06:36

标签: python html beautifulsoup

我正在尝试使用BeautifulSoup从此链接中提取HTML中的用户注释:

  

http://songmeanings.com/songs/view/3530822107858560012/

但是,HTML Doc仅在使用此代码时显示评论第一页中的用户评论:

import urllib2
from bs4 import BeautifulSoup

url = "http://songmeanings.com/songs/view/3530822107858560012/"
response = urllib2.build_opener(urllib2.HTTPCookieProcessor).open(url)
html_doc = response.read()
soup = BeautifulSoup(html_doc, 'html.parser')

comments = soup.find_all('div', class_='text')
for c in comments:
    c.get_text()
    print c.prettify()

问题是来自该页面的HTML文档不包括评论第1页之后的其他评论。单击第2,3,4页等不会重新加载页面或更改HTML源代码。如何访问第一个页面之后的所有页面上的评论?

澄清:我的意思是用户在网页底部写了评论,可以在标签中找到:div class =“text”。这些是我想要提取的文本,但只有前10个用户书面评论才会显示在HTML中,而实际上有107个评论。

1 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解你要做的事情。 但据我所知,你试图在某首歌下得到所有评论。 在这种情况下的问题是songmeanings.com使用一种Ajax调用自己的API或服务来获取其余的注释。 这就是为什么你没有得到所有评论的原因。

您可以尝试检查他们正在做什么样的调用以获取下一行评论并使用它来获取新评论。

此外,如果是一个选项,请尝试联系他们,以获得他们为公众提供的API。

希望这有所帮助。