Python urlopen 和 httplib 都无法 return 页面的实际 html

Python urlopen and httplib both are unable to return the actual html of the page

我正在尝试从该页面读取信息:http://movie.douban.com/subject/20645098/comments

并使用以下命令查找所有评论项。

comment_item = soup.find_all("div", {"id":"comment"})

但是,我无法获得任何返回值,我意识到我的脚本读取的 html 与实际页面上的 html 不同。以下是我尝试过的。

我首先尝试使用 BeautifulSoup 执行以下操作:

comment_html = urlopen(section_url).read()
soup = BeautifulSoup(comment_html, "html.parser")

和汤returns和实际html不一样的html。然后我尝试了 httplib2 请求如下:

h = httplib2.Http()
resp, content = h.request(section_url, "GET")
soup = BeautifulSoup(content, "html.parser")

而且还是老样子。 :(

这是一个工作示例:

import requests
import BeautifulSoup as BeautifulSoup

url = 'http://movie.douban.com/subject/20645098/comments'
resp = requests.get(url)
b = BeautifulSoup(resp.text)
comments = b.findAll('div', {'class': 'comment'})

print comments

我这里使用的是requests库,强烈推荐你也使用,但与你的问题无关。您的代码的问题是错误的方法名称 (find_all),并且您想查找 class 而不是 id.