2017-03-28 8 views
1

我想从网站“https://www.estimize.com/jpm/fq3-2016#chart=table”获取一些信息,以更准确地获取所有单个估算值,它们位于页面底部。但它只显示前30个,然后你应该手动按下“显示全部”按钮来获得另外30个等等。 这里是我到目前为止的代码:使用BeautifulSoup获取隐形网页信息

from urllib import urlopen 
from bs4 import BeautifulSoup 
html = urlopen("https://www.estimize.com/jpm/fq3-2016#chart=table") 
soup = BeautifulSoup(html.read(), "html.parser") 
print(soup) 

我看到有打印的代码的一部分:

"totalCount":142,"total_estimates_showing":30," 

是否有可能改变这种打印机会所有的估计?

回答

1

展望,当你点击“全部显示”按钮,你应该解析URL站点所做的Ajax请求:

https://www.estimize.com/jpm/fq3-2016?sort=rank&direction=asc&estimates_per_page=142&show_confirm=false&selected_user=&_=1490697888459

获得直接的所有结果

+0

感谢现在我明白了所有142估计,但我遇到一个问题得到他们。如果我运行“print(soup.findAll('script')[11] .string.encode('utf8'))”,它只显示$(function()...而不是内部的所有东西 –

+0

看来,该数据不在初始请求的页面中,并且稍后以某种方式提交 –