我最近正在研究足球评级系统,并从scoreboard.com获得数据源。
在解析了一些示例数据后,意识到数据不可读。好像是在破碎的英文文本中。
您会参考以下python代码和示例结果吗?期待看到你的帮助。
感谢。
import requests
import lxml.html
import cssselect
from bs4 import BeautifulSoup
url = requests.get('https://www.scoreboard.com/soccer/england/premier-league-2016-2017/results/')
urlshow = url.text
print(urlshow)
- 结果样本 -
英超联赛-ZEE÷dYlOSQOD-ZB÷198ZY÷EnglandZC÷fZHsKRg9ZZ÷tZZ÷8Ai8InSt¬
答案 0 :(得分:0)
页面以JavaScript呈现。您看到的文本不会显示在页面上,但具有CSS属性" display:none"应用于它所在的div。所以它没有显示,只是用于将JavaScript使用的数据放在页面上。我想你想要的结果。为了让他们首先安装Selenium:
pip3 install selenium
然后获得一个驱动程序,例如https://sites.google.com/a/chromium.org/chromedriver/downloads(如果你在Windows或Mac上,你可以获得Chrome的无头版本 - Canary,如果你愿意的话)把驱动程序放在你的路上。
from bs4 import BeautifulSoup
from selenium import webdriver
import unicodedata
browser = webdriver.Chrome()
url = ('https://www.scoreboard.com/soccer/england/premier-league-2016-2017/results/')
browser.get(url)
html_source = browser.page_source
browser.quit()
soup = BeautifulSoup(html_source, 'lxml')
for tr in soup.find_all('tr', {'class': 'stage-finished'}):
for td in tr.find_all('td'):
print (unicodedata.normalize("NFKD", td.text))
输出:
May 21, 03:00 PM
Arsenal
Everton
3 : 1
May 21, 03:00 PM
Burnley
West Ham
1 : 2
May 21, 03:00 PM
Chelsea
Sunderland
5 : 1
...
如果您不想使用Selenium,可以使用其他方法查看我对Scraping Google Finance (BeautifulSoup)
的回答