数据在单列而不是表格格式中被删除

时间:2017-06-24 13:03:43

标签: python-3.x selenium selenium-webdriver web-scraping

我使用selenium在python中编写了一个脚本,用于从网页中解析数据。但是,当我运行它时,我会在单列而不是表格格式中删除数据。我应该在脚本中进行哪种更改以获取表格格式的数据?这是我到目前为止所尝试的内容:

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("https://fantasy.premierleague.com/player-list/")

table_data = driver.find_elements_by_xpath("//table[@class='ism-table']")[0]

for item in table_data.find_elements_by_xpath(".//td"):

    print(item.text)

driver.quit()

表格格式的含义如下所示。但是,我在单个列中获取数据而不是如下所示的几个列。

enter image description here

1 个答案:

答案 0 :(得分:1)

尝试

for item in table_data.find_elements_by_xpath(".//tr"):
    print(item.text.split())

它会分别为每个玩家提供一个列表。

请注意,.find_elements_by_xpath()中的标记已更改

此外, 你可以像这样制作可读的表格:

...(your previous code)...
data=[]
for item in table_data.find_elements_by_xpath(".//tr"):
    data.append(item.text.split())

format_table = '{:8s}' + 4 * '{:>10s}'
for lst in data:
    print(format_table.format(*lst))

另一个版本(用#34; de Goa"等空格正确地抓住名字):

data=[]
temp=[]
for item in table_data.find_elements_by_xpath(".//tr"):
    for i in item.find_elements_by_xpath('td'):
        temp.append(i.text)
    data.append(temp)
    temp=[]