我正在尝试从这里http://www.veikkausliiga.com/tilastot/2016/veikkausliiga/ottelut/498251/kokoonpanot/来获得主队和客队的阵容。
我尝试使用tr和td标签以及id和class标签。我不能从桌子上得到任何信息。
import urllib
import urllib.request
from bs4 import BeautifulSoup
import os
def make_soup(url):
thePage = urllib.request.urlopen(url)
soupData = BeautifulSoup(thePage, "html.parser")
return soupData
def makeTableData(url):
matchDataSaved= ""
soup = make_soup(url)
table = soup.find("table",{"class":"team-rosters home"})
return table
我希望表行能够显示,但是代码输出None。我如何获得球员阵容?
答案 0 :(得分:2)
我不确定您想要什么输出。这确实有效,因为它返回元素taht具有该表标签。您仍然需要检查一下以获得tr和td标签。
另一个选择是因为它确实具有<table>
标签,仅使用Pandas,然后操纵数据框以提取所需的内容和所需的格式。可能不是我想要的形式,而是获取了数据,您可以从那里开始使用它:
import pandas as pd
url = 'http://www.veikkausliiga.com/tilastot/2016/veikkausliiga/ottelut/498251/kokoonpanot/'
tables = pd.read_html(url)
results = pd.DataFrame()
ix_list = [2,3,4,5,7,8,9,10]
for ix in ix_list:
results = results.append(tables[ix])
results = results.reset_index(drop=True)
输出:
print (results)
0 ... 3
0 #21 T. Dähne ... NaN
1 #15 V. Jalasto ... #3 Taiwo
2 #20 Vincent ... NaN
3 #7 N. Alho ... NaN
4 #25 D. Assis ... NaN
5 #9 B. Span ... #11 J. Ibrahim
6 #4 P. Sparrdal Mantilla ... #7 T. Wirtanen
7 #1 W. Viitala ... NaN
[8 rows x 4 columns]