我必须承认我不太了解html。我试图使用python从在线新闻中的文章中提取所有评论。我尝试使用python BeautifulSoup,但似乎注释不在html源代码中,而是出现在inspect-element中。例如,你可以在这里查看。 http://www.dailymail.co.uk/sciencetech/article-5100519/Elon-Musk-says-Tesla-Roadster-special-option.html#comments
我的代码在这里,我很震惊。
import urllib.request as urllib2
from bs4 import BeautifulSoup
url = "http://www.dailymail.co.uk/sciencetech/article-5100519/Elon-Musk-says-Tesla-Roadster-special-option.html#comments"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page, "html.parser")
我想这样做
name_box = soup.find('p', attrs={'class': 'comment-body comment-text'})
但源代码中没有此信息。
有任何建议,如何前进?
答案 0 :(得分:1)
我没有尝试过这样的事情,但我的猜测是,如果你想直接从"页面来源"因为页面是动态的,所以你需要像selenium这样的东西来实际导航页面。
或者,如果您只对评论感兴趣,可以使用dailymail.co.uk的api获取评论。
请注意查询字符串中的项目" max = 1000" "&安培;顺序"您可能还需要使用变量" offset"如果API对最大值有限制,则沿最大值查找所有注释" max"值。
我不知道API的定义位置,您可以通过查看浏览器在搜索网页时发出的网络请求来查看它。
您可以以JSON格式从http://www.dailymail.co.uk/reader-comments/p/asset/readcomments/5100519?max=1000&order=desc&rcCache=shout获取该页面的评论数据。似乎每篇文章都有类似" 5101863"在其网址中,您可以使用这些数字替换您想要评论的每个新故事。
答案 1 :(得分:0)
谢谢弗雷德曼。我不知道这个API。似乎我们只需要提供文章ID,我们可以从文章中得到评论。这是我正在寻找的解决方案。