2017-07-18 116 views
0

我一直在嘗試幾天,從一個使用asmx post請求檢索我想要的數據的網站獲取一些數據。我已經用PHP捲曲,蟒蛇試圖現在用HTML解析器,仍然沒有運氣...崗位要求是:如何動態刮取頁面數據?

https://sports-itainment.biahosted.com/WebServices/SportEvents.asmx/GetEvents

{"champIds":["38"],"eventIds":[],"dateFilter":"All","marketsId":-1,"skinId":"betrebels"} 

而且很多的嘗試之後,我發現這個鏈接提供我的數據我想:

https://sports-itainment.biahosted.com/generic/prelive.aspx?token=&clientTimeZoneOffset=-180&lang=en-Gb&walletcode=508729&skinid=betrebels&parentUrl=https://ps.equalsystem.com/ps/game/BIASportbook.action#sportids=&catids=28&champids=91

但是當我嘗試使用捲曲或simple_html_dom只是簡單的解析它打開它,它不顯示數據;我只是顯示一些文字..任何想法我怎麼能得到它?我有超過50個嘗試不同方式但沒有結果的文件,因此很難發佈我的代碼。

+0

當您嘗試使用Python時,是否使用[requests](http://docs.python-requests.org/en/master/)模塊? – cosinepenguin

+0

「還沒有運氣」是什麼意思?什麼不工作?發生了什麼?你期望會發生什麼?嘗試發佈[MCVE](https://stackoverflow.com/help/mcve)。 – Mike

+0

退房http://jmeter.apache.org/ - 這有點難以學習,但可能是你的情況下正確的解決方案 –

回答

0

我知道這個問題被標記爲php,但它似乎你是開放使用Python以及所以我希望這個答案滿足您的需求!

您正在運行的問題是該網站是動態創建的(它會在頁面加載後加載),因此您之前嘗試使用Python加載頁面(如您所說,有請求)工作,但並未實際返回任何內容數據!

要刮掉你的問題鏈接到的網站,我強烈建議使用Python phantomjs模塊,配對SeleniumSO question關於如何在Selenium中安裝phantomjs有幾個很好的答案。 phantomjs允許頁面完全加載(包括實際使用所需的表信息填充它的JS)。

然後,一旦這兩個依賴的創建,可以運行此代碼:

from selenium import webdriver 
from bs4 import BeautifulSoup 

driver = webdriver.PhantomJS() 
driver.get('https://sports-itainment.biahosted.com/generic/prelive.aspx?token=&clientTimeZoneOffset=-180&lang=en-Gb&walletcode=508729&skinid=betrebels&parentUrl=https://ps.equalsystem.com/ps/game/BIASportbook.action#sportids=&catids=28&champids=91') 
soup = BeautifulSoup(driver.page_source) 
soup.find_all('tbody') 

而且與BeautifulSoup的網頁互動!

如果您需要它,這是一個很好的附加信息來源!

scrape html generated by javascript with python

希望它有幫助!