亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Python 和 BeautifulSoup 從頁面獲取表信息

使用 Python 和 BeautifulSoup 從頁面獲取表信息

jeck貓 2023-12-19 16:08:16
我嘗試從中獲取信息的頁面是https://www.pro-football-reference.com/teams/crd/2017_roster.htm< a i=2>.我正在嘗試從“名冊”中獲取所有信息表,但由于某種原因我無法通過 BeautifulSoup 獲取它。我已經嘗試過 soup.find("div", {'id': 'div_games_played_team'}) 但它不起作用。當我查看頁面的 HTML 時,我可以看到一個非常大的注釋和常規 div 中的表格。我怎樣才能使用BeautifulSoup從這個表中獲取信息?
查看完整描述

2 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

你不需要硒。您可以做的(并且您正確識別了它)是提取注釋,然后從其中解析表格。


import requests

from bs4 import BeautifulSoup

from bs4 import Comment

import pandas as pd



url = 'https://www.pro-football-reference.com/teams/crd/2017_roster.htm'

response = requests.get(url)


soup = BeautifulSoup(response.text, 'html.parser')

comments = soup.find_all(string=lambda text: isinstance(text, Comment))


tables = []

for each in comments:

    if 'table' in each:

        try:

            tables.append(pd.read_html(each)[0])

        except ValueError as e:

            print(e)

            continue

輸出:


print(tables[0].head().to_string())

    No.           Player   Age  Pos   G   GS     Wt    Ht  College/Univ  BirthDate   Yrs   AV                            Drafted (tm/rnd/yr)      Salary

0  54.0  Bryson Albright  23.0  NaN   7  0.0  245.0   6-5    Miami (OH)  3/15/1994     1  0.0                                            NaN    $246,177

1  36.0    Budda Baker*+  21.0   ss  16  7.0  195.0  5-10    Washington  1/10/1996  Rook  9.0     Arizona Cardinals / 2nd / 36th pick / 2017    $465,000

2  64.0    Khalif Barnes  35.0  NaN   3  0.0  320.0   6-6    Washington  4/21/1982    12  0.0  Jacksonville Jaguars / 2nd / 52nd pick / 2005    $176,471

3  41.0   Antoine Bethea  33.0   db  15  6.0  206.0  5-11        Howard  7/27/1984    11  4.0   Indianapolis Colts / 6th / 207th pick / 2006  $2,000,000

4  28.0    Justin Bethel  27.0  rcb  16  6.0  200.0   6-0  Presbyterian  6/17/1990     5  3.0    Arizona Cardinals / 6th / 177th pick / 2012  $2,000,000

....


查看完整回答
反對 回復 2023-12-19
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

您嘗試抓取的標簽是由 JavaScript 動態生成的。您很可能使用請求來抓取 HTML。不幸的是 requests 不會運行 JavaScript,因為它將所有 HTML 作為原始文本提取。 BeautifulSoup 找不到該標簽,因為它從未在您的抓取程序中生成。

查看完整回答
反對 回復 2023-12-19
  • 2 回答
  • 0 關注
  • 163 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號