2017-12-29 55 views
0

私は最近サッカーレーティングシステムの分析に取り組んでおり、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) 

-

プレミアLeague¬ZEE÷dYlOSQOD¬ZB÷198¬ZY÷England¬ZC÷fZHsKRg9¬ZD÷t¬ZE÷8Ai8InSt¬

- 結果のサンプル

答えて

0

ページはJavaScriptでレンダリングされます。表示されているテキストはページには表示されませんが、表示属性には「display:none」というCSS属性が適用されています。表示されないため、JavaScriptで使用されるデータをページに配置するために使用されます。私は結果が欲しいと思います。セレンを最初にインストールするには:

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 

... 

あなたは他の方法を使用することができセレンを使用したくない場合はScraping Google Finance (BeautifulSoup)

に私の答えを参照してください
関連する問題