使用 BeautifulSoup 提取抓取网页的 Script 标签所需的信息

时间:2021-08-01 13:06:51

标签: python pandas selenium web-scraping beautifulsoup

我是一个网页抓取新手,我正在寻找下一步该做什么的指示,或者可能是一个可行的解决方案,以抓取以下网页:https://www.capology.com/club/leicester/salaries/2019-2020/

我想为表格的每一行(玩家)提取以下内容:

  • 球员姓名,即 Jamie Vardy
  • 每周总基本工资(英镑),即 140,000 英镑
  • 年总基本工资(以英镑计),即 7,280,000 英镑
  • 位置,即 F
  • 年龄,即 33 岁
  • 英格兰国家

以下代码为我想要的 JavaScript 信息表创建“汤”:

import requests
from bs4 import BeautifulSoup
import json

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0'}

url = 'https://www.capology.com/club/leicester/salaries/2019-2020/'

r = requests.get(url)

soup = BeautifulSoup(r.content, 'html.parser')

script = soup.find_all('script')[11].string    # 11th script tag in the webpage

我可以看到分配给 script 变量的“汤”包含我需要的所有信息,但是,我正在努力提取我需要作为 Pandas DataFrame 的信息?

我随后想设置它以进行分页,以便在 17-18 年的“五大”欧洲联赛(英超联赛、意甲联赛、西甲联赛、德甲联赛和法甲联赛 1)中筛选每支球队、18-19、19-20 和 20-21(当前)赛季。但是,这是最后阶段的解决方案,如果这是一个耗时的请求,我很乐意离开并尝试自己做。

一个可行的解决方案会很棒,但只要提供一些提示,这样我就可以离开并尽可能有效地自己学习这些东西会很棒。

非常感谢!

1 个答案:

答案 0 :(得分:1)

这是一项最适合 selenium 之类工具的任务,因为该站点使用脚本在加载后使用表格填充页面,并且解析 https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu#2004- 中的值并非易事{1}} 来源:

script