网页抓取数据';这不是典型的表python
我试图找到一种从rotogrinders页面中提取数据的方法,而不是以典型的表格形式。我是新来的,以前做过一个非常基本的:网页抓取数据';这不是典型的表python,python,web-scraping,Python,Web Scraping,我试图找到一种从rotogrinders页面中提取数据的方法,而不是以典型的表格形式。我是新来的,以前做过一个非常基本的: url = 'site.com' html = requests.get(url).content df_list = pd.read_html(html) temp_df = df_list[-1] 这已经足够了…但这是不同的 如果你看一下,我想得到每个队的球员名单,按照他们被列出的顺序(从上到下)。从那里我可以按球队做深度图,但我需要
url = 'site.com'
html = requests.get(url).content
df_list = pd.read_html(html)
temp_df = df_list[-1]
这已经足够了…但这是不同的
如果你看一下,我想得到每个队的球员名单,按照他们被列出的顺序(从上到下)。从那里我可以按球队做深度图,但我需要得到球员和位置的列表。每支球队都在一个单独的栏中,然后由相互比赛的两支球队分组。我只需要姓名和职位,但如果有其他信息,那就可以了
本质上,这就是我想要的输出:
Alex Smith QB $7.2K 31.0
Patrick Mahomes QB 0
Kareem Hunt RB $7.8K 43.1
Charcandrick West RB $5.2K 9.0
C.J. Spiller RB $4.5K 0
Tyreek Hill WR $7.2K 23.3
Chris Conley WR $4.9K 5.3
Albert Wilson WR $4.9K 6.2
De'Anthony Thomas WR $4.5K 0.7
Demarcus Robinson WR $4.5K 0
Travis Kelce TE $6.7K 6.9
Demetrius Harris TE $4.5K 8.5
Cairo Santos K $4.6K 6.0
Tom Brady QB $9.2K 10.7
Jimmy Garoppolo QB $6K 0
Mike Gillislee RB $6.7K 22.5
James White RB $5.7K 8.3
Dion Lewis RB $5.1K 0.9
Brandin Cooks WR $7.9K 10.3
Chris Hogan WR $6.2K 3.0
Danny Amendola WR $6.1K 13.0
Malcolm Mitchell WR $4.9K 0
Phillip Dorsett WR $5K 0.0
Rob Gronkowski TE $8.1K 4.3
Dwayne Allen TE $4.9K 0.0
Stephen Gostkowski K $5.1K 9.0
... ... .....
接下来是其他球队
编辑:这就是我的工作内容
url = 'https://rotogrinders.com/lineups/nfl?week=1&site=fanduel'
page = requests.get(url).content
soup = BeautifulSoup(page, 'html.parser')
name_box = soup.find('li', attrs={'class': 'player'})
name = name_box.text.strip()
这是我得到的。我正试图弄清楚如何从我目前拥有的(这只是第一个玩家,有那么多空白)进入我的输出;如上图所示
以下是我的输出:
print (name)
Alex Smith
QB
$7.2K
31.0
试着和beautifulsoup合作。我一直在和beautifulsoup合作。只是有一段艰难的时光。我已经有了基础知识,现在只是想扩展一下。看上面,我已经添加了一个问题,我在哪里与它。。。
import bs4
import requests as re
import pandas as pd
alpha = re.get('https://rotogrinders.com/lineups/nfl?week=1&site=fanduel')
beta = bs4.BeautifulSoup(alpha.text,'lxml')
gama = beta.findAll('a',{'class':'player-popup'})
lister = [a.text for a in gama]
positions = beta.findAll('span',{'class':'position'})
positionslist=[span.text for span in positions]
salaries = beta.findAll('span',{'class':"salary"})
salarieslist = [span.text for span in salaries]
points = beta.findAll('span',{'class':"fpts actual"})
pointslist = [span.text for span in points]
target = pd.DataFrame(
{
'player name':lister
,'positions':positionslist
,'salaries':salarieslist
,'points':pointslist
})