Python 从网页中抓取数据-属性
您好,我是网页抓取新手,我有一个问题。我想从这个html代码中提取数据: 我想把数据放在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/')
<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)