我正在尝试将此URL中的数据转换为适合Excel的格式但是卡住了。使用此代码,我设法将数据放入行中,但由于某种原因,它们与行#不对应。有人可以帮忙吗?
import requests
from bs4 import BeautifulSoup
import pandas as pd
import csv
#--------------------------------------------------------------------------------------------------------------------------------------------------#
url = 'http://rotoguru1.com/cgi-bin/hoopstat-daterange.pl?startdate=20181021&date=20181021&saldate=20181021&g=0&ha=&min=&tmptmin=0&tmptmax=999&opptmin=0&opptmax=999&gmptmin=0&gmptmax=999&gameday=&sd=0'
#--------------------------------------------------------------------------------------------------------------------------------------------------#
page_request = requests.get(url)
soup = BeautifulSoup(page_request.text,'lxml')
data = []
for br in soup.findAll('br')[3:][:-1]:
data.append(br.nextSibling)
data_df = pd.DataFrame(data)
print(data_df)
打印结果:
0
0
4943;Abrines, Alex;0;Abrines, Alex;okc;1;0;5....
1
5709;Adams, Jaylen;0;Adams, Jaylen;atl;1;0;0....
2
4574;Adams, Steven;2991235;Adams, Steven;okc;...
3
5696;Akoon-Purcell, DeVaughn;0;Akoon-Purcell,...
4
4860;Anderson, Justin;0;Anderson, Justin;atl;...
5
3510;Anthony, Carmelo;1975;Anthony, Carmelo;h...
我相信你的DataFrame
的最后一行是空的原因是因为你的解析器。在列表的最后一个位置,它仍会在休息后检查下一个兄弟,并在你的DataFrame
中添加一个空格。这样可以解决问题:
for br in soup.findAll('br')[3:][:-1]:
contents = br.nextSibling
if not contents == "\n":
data.append(br.nextSibling)