我试图在python中附加一个URL,以便从目标URL中获取详细信息。 我有下面的代码,但它似乎是从url1而不是URL中抓取数据
我从NFL网站上搜刮了球队的名字,没有任何问题。问题在于spotrac URL,我在其中添加了我从NFL网站上抓取的球队名称
import requests
from bs4 import BeautifulSoup
URL ='https://www.nfl.com/teams/'
page = requests.get(URL)
soup = BeautifulSoup(page.text, 'html.parser')
team_name = []
team_name_list = soup.find_all('h4',class_='d3-o-media-object__roofline nfl-c-custom-promo__headline')
for team in team_name_list:
if team.find('p'):
team_name.append(team.text)
for team in team_name:
team = team.replace(" ", "-").lower()
url1 = 'https://www.spotrac.com/nfl/rankings/'
URL = url1 +str(team)
print(URL)
data = {
'ajax': 'true',
'mobile': 'false'
}
bs_soup = BeautifulSoup(requests.post(URL, data=data).content, 'html.parser')
spotrac_df = pd.DataFrame(columns = ['Name', 'Salary'])
for h3 in bs_soup.select('h3'):
spotrac_df = spotrac_df.append(pd.DataFrame({'Name': str(h3.text), 'Salary' : str(h3.find_next(class_="rank-value").text)}, index=[0]), ignore_index=False)
我几乎可以肯定的是,问题来自URL没有正确附加。刮取是从url1而不是URL获取工资等
url添加正确,但您的团队名称中有一个前导空格。我还做了一些其他的更改,并在代码中记录了它们
最后,(我曾经做过两次),创建一个空数据帧,然后在每次迭代后附加到它,我认为这不是最好的方法。我被告知最好使用列表/字典构造行,然后在完成后,调用pandas来构造数据帧,因此也改变了这一点
输出:
相关问题 更多 >
编程相关推荐