0
Here's the site我想刮。我想要在動作區域中刪減數字(5.3%,12.8%等)。這是使用Raphaël製作的svg。目前我不知道如何刮擦它,因爲它只是SVGAnimatedString。任何解決方案?如何使用BS4,Scrapy或類似的東西在Python中刮取RaphaëlSVG?
Here's the site我想刮。我想要在動作區域中刪減數字(5.3%,12.8%等)。這是使用Raphaël製作的svg。目前我不知道如何刮擦它,因爲它只是SVGAnimatedString。任何解決方案?如何使用BS4,Scrapy或類似的東西在Python中刮取RaphaëlSVG?
你的主要問題是,這個網站使用Javascript創建它的內容。您可能會確定所需的調用以獲取所需的數據並直接請求,或者使用其他方法來使用selenium
來自動執行瀏覽器。然後等待網頁完全呈現,然後您可以從中提取完整的HTML。
然後,您可以使用beautifulsoup
來幫助解析返回的HTML。例如:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from bs4 import BeautifulSoup
url = "http://www.sanzarrugby.com/therugbychampionship/match-centre/?season=2018&competition=214&match=2891#matchstatstab"
browser = webdriver.Firefox()
browser.get(url)
soup = BeautifulSoup(browser.page_source, "html.parser")
data = [v.text for v in soup.svg.find_all('tspan')]
print data
給你data
拿着項列表如下:
[u'The Rugby Championship', u'Australia v. South Africa', u'Possession', u'5.3%', u'12.8%', u'29.4%', u'10.2%', u'3.2%', u'11.8%', u'15.0%', u'12.3%', u'58%', u'42%']
您將需要研究如何安裝這些軟件包。
首先非常感謝您的回答。我確實有一個問題。這將工作與Linux的VPS機?因爲它只是在我的電腦上打開Firefox,這是合乎邏輯的,但是不會產生錯誤? –
想通了,需要安裝pyvirtualdisplay,似乎這樣做。謝謝! –
不客氣!很高興你想出來了。 –