2017-03-28 18 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

看來,該數據不在初始請求的頁面中,並且稍後以某種方式提交 –