pandas.read_html() 関数を使用して、 Transfetmarkt Web サイトを介して、さまざまな html テーブルから英語のサッカー統計を取得しようとしています。
例:
import pandas as pd
url = r'http://www.transfermarkt.co.uk/en/premier-league/gegentorminuten/wettbewerb_GB1.html'
df = pd.read_html(url)
ただし、このコードは「ValueError: Invalid URL」エラーを生成します。
次に、urllib2.urlopen() 関数を使用して同じ Web サイトを解析しようとしました。今度は「HTTPError: HTTP Error 404: Not Found」になりました。通常の試行錯誤による障害の発見の後、urllib2 ヘッダーが python のようなエージェントを Web サーバーに提示することがわかりました。
urllib2 のエージェントを変更し、beautifulsoup を使用してその内容を読み取ると、問題なくテーブルを読み取ることができます。
例:
from BeautifulSoup import BeautifulSoup
import urllib2
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
url = r'http://www.transfermarkt.co.uk/en/premier-league/gegentorminuten/wettbewerb_GB1.html'
response = opener.open(url)
html = response.read()
soup = BeautifulSoup(html)
table = soup.find("table")
pandas の urllib2 ヘッダーを変更して、Python がこの Web サイトをスクレイピングできるようにするにはどうすればよいですか?
ありがとう