不使用 beautifulsoup 抓取网站数据
Not scraping website data with beautifulsoup
这是我第 3 次或第 4 次使用 BeautifulSoup。我将它与请求库一起使用以从 sports' website 中抓取数据。我正在尝试抓取运动员的信息,例如姓名、年龄、身高等。但是,在尝试获取信息时(打印(player_name))我得到的是这个而不是网站页面中显示的信息:
姓名:{{details.player.person.lastName}},{{details.player.person.firstName}}
有什么方法可以访问真实数据吗?
我的代码:
import requests
from bs4 import BeautifulSoup
def scrape_player(player_url):
response_player = requests.get(player_url)
player_soup = BeautifulSoup(response_player.text, 'html.parser')
div = player_soup.find('div', {'class' : 'player-info-row'})
player_name = div.text
print(player_name)
if __name__ == '__main__':
scrape_player('https://ehfcl.eurohandball.com/men/20212/player/LFpFsiLDFvxs_tXnKlFAQw/luis-frade/')
网站从脚本标签加载数据,因此它是动态加载的,bs4
将无法通过标签或 class 获取数据,但尽管它存在于 script
标签中
import requests
from bs4 import BeautifulSoup
url = "https://ehfcl.eurohandball.com/men/2021-22/player/Z8PG_QqFxhA-6PTQ4gcCSA/stas-skube/"
r = requests.get(url)
soup = BeautifulSoup(r.content, "html.parser")
在这里我们可以找到script
标签并将数据加载成json格式,其中returns数据作为键值对,你可以提取你想要的数据!
data=soup.find("script",attrs={"type":"application/ld+json"})
import json
main_data=json.loads(data.string)
print(main_data['name'])
print(main_data['birthDate'])
输出:
Skube Stas
1989-11-15
这是我第 3 次或第 4 次使用 BeautifulSoup。我将它与请求库一起使用以从 sports' website 中抓取数据。我正在尝试抓取运动员的信息,例如姓名、年龄、身高等。但是,在尝试获取信息时(打印(player_name))我得到的是这个而不是网站页面中显示的信息:
姓名:{{details.player.person.lastName}},{{details.player.person.firstName}}
有什么方法可以访问真实数据吗?
我的代码:
import requests
from bs4 import BeautifulSoup
def scrape_player(player_url):
response_player = requests.get(player_url)
player_soup = BeautifulSoup(response_player.text, 'html.parser')
div = player_soup.find('div', {'class' : 'player-info-row'})
player_name = div.text
print(player_name)
if __name__ == '__main__':
scrape_player('https://ehfcl.eurohandball.com/men/20212/player/LFpFsiLDFvxs_tXnKlFAQw/luis-frade/')
网站从脚本标签加载数据,因此它是动态加载的,bs4
将无法通过标签或 class 获取数据,但尽管它存在于 script
标签中
import requests
from bs4 import BeautifulSoup
url = "https://ehfcl.eurohandball.com/men/2021-22/player/Z8PG_QqFxhA-6PTQ4gcCSA/stas-skube/"
r = requests.get(url)
soup = BeautifulSoup(r.content, "html.parser")
在这里我们可以找到script
标签并将数据加载成json格式,其中returns数据作为键值对,你可以提取你想要的数据!
data=soup.find("script",attrs={"type":"application/ld+json"})
import json
main_data=json.loads(data.string)
print(main_data['name'])
print(main_data['birthDate'])
输出:
Skube Stas
1989-11-15