繁体   English   中英

列表转换为空白 Dataframe

[英]List Converts to Blank Dataframe

我的列表xfrs ,当我转换它时返回一个空白 DF ......有人看到代码有任何问题吗?

我能够 append 并打印列表很好,但是当我 append 时,DF transfers是空白的。

url2 = 'https://247sports.com/Season/2020-Football/TransferPortalPositionRanking/'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'}



response = requests.get(url2, headers = headers)

soup = BeautifulSoup(response.content, 'html.parser')
xfrs = []
schools = []
for li in soup.findAll('li', attrs={'class':'transfer-player'}):
    xfrs.append(li.find('a').contents)
    schools.append(li.find('li', attrs={'class':'destination'}))


transfers = pd.DataFrame(xfrs, columns=['Players'])
print(transfers)

如前所述, .contents返回 BeautifulSoup 对象的列表,因此您需要使用例如.text来获取名称。 还要注意您的选择,它应该更具体。

将抓取的数据存储在 dataframe 尝试将其收集为字典列表:

data.append({
        'Player':li.h3.text,
        'Destination':destination['alt'] if (destination:=li.select_one('img[class="logo"]')) else None
    })

例子

import requests,json
from bs4 import BeautifulSoup as bs

url2 = 'https://247sports.com/Season/2020-Football/TransferPortalPositionRanking/'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'}

response = requests.get(url2, headers = headers)

soup = BeautifulSoup(response.content, 'html.parser')
data = []
for li in soup.find_all('li', attrs={'class':'transfer-player'}):
    data.append({
        'Player':li.h3.text,
        'Destination':destination['alt'] if (destination:=li.select_one('img[class="logo"]')) else None
    })



pd.DataFrame(data)

Output

播放器 目的地
JT丹尼尔斯 乔治亚州
KJ科斯特洛 密西西比 State
杰米纽曼 乔治亚州
... ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM