Python 从网页中抓取数据-属性

Python 从网页中抓取数据-属性,python,html,web-scraping,beautifulsoup,Python,Html,Web Scraping,Beautifulsoup,您好,我是网页抓取新手,我有一个问题。我想从这个html代码中提取数据: 我想把数据放在 <tr> .. </tr> 我受此启发,但它返回了一个空数组。有人能帮我做这个吗用pandas让你的网络抓取生活(稍微)简单一点怎么样 以下是方法: import pandas as pd import requests df = pd.read_html(requests.get('https://www.basketball-reference.com/leagues/')

您好,我是网页抓取新手,我有一个问题。我想从这个html代码中提取数据:

我想把数据放在

<tr> .. </tr> 

我受此启发,但它返回了一个空数组。有人能帮我做这个吗

pandas
让你的网络抓取生活(稍微)简单一点怎么样

以下是方法:

import pandas as pd
import requests

df = pd.read_html(requests.get('https://www.basketball-reference.com/leagues/').text, flavor="bs4")
df = pd.concat(df)
df.to_csv("basketball_table.csv", index=False)
输出:


就像我在评论中所说的,它看起来像是在客户端添加了属性
数据行
——我在HTML中找不到它

解决这个问题的一个简单快捷的方法是更改css选择器。我想出了这样的主意

rows = soup.select('tr')
for row in rows:
    if row.th.attrs['data-stat']=='season' and 'scope' in row.th.attrs:
        print(row)

只需查看html,就可以在客户端添加属性
数据行
。这就是为什么您的select查询返回一个空数组“toscrape”意味着像垃圾一样扔掉。正确的术语是scrape,这让我的生活更轻松谢谢你为什么在这里使用请求?有点多余。只需使用url,pandas就可以完成这一部分:
df=pd.read\u html('https://www.basketball-reference.com/leagues/“)
这很有帮助,解决方案是正确的,谢谢
rows = soup.select('tr')
for row in rows:
    if row.th.attrs['data-stat']=='season' and 'scope' in row.th.attrs:
        print(row)