Python Beautiful Soup не загружает значения таблицы

Я не знаю, как добавить столбец «Поселение» для каждого штата (Новый Южный Уэльс, Виктория, Квинсленд, Южная Австралия) с этого веб-сайта:

https://www.asxenergy.com.au/futures_au

Кажется, числовые данные не отображаются.

Мой стартовый код:

from bs4 import BeautifulSoup
from urllib.request import urlopen

url = "https://www.asxenergy.com.au/futures_au"
page = urlopen(url)
html = page.read().decode("utf-8")
soup = BeautifulSoup(html, "html.parser")
print(soup.get_text())

Вероятно, это связано с тем, что вы используете urlopen(), который не может обрабатывать JavaScript.

John Gordon 28.07.2024 03:59

Вы можете использовать Selenium WebDriver для обработки этого JavaScript. Затем вам нужно использовать селекторы CSS или XPath для столбца Settle и использовать цикл for для перебора элементов.

dram95 28.07.2024 04:14

Данные загружаются отсюда asxenergy.com.au/futures_au/dataset

GTK 28.07.2024 04:33
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
3
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как уже говорилось, данные взяты с сайта asxenergy.com.au/futures_au/dataset.

Используйте панд, чтобы получить теги <table>. Он не идеально структурирован, поэтому здесь требуется некоторая обработка.

import pandas as pd


url = 'https://www.asxenergy.com.au/futures_au/dataset'
dfs = pd.read_html(url)

states = dfs[0].iloc[0].to_list()
table_names = list(dfs[1].columns[0])
data_dfs = dfs[2:]
    
output = {}
for count, state in enumerate(states):
    start_idx = count * 6
    end_idx = start_idx + 6
    set_idx = list(range(start_idx, end_idx))
    
    temp_table_names = [table_names[i] for i in set_idx]
    temp_data_dfs = [data_dfs[i] for i in set_idx]

    data_dict = dict(zip(temp_table_names, temp_data_dfs))
    
    output[state] = data_dict

Выход:

for state, tables in output.items():
    for table_name, df in tables.items():
        print(state, '-', table_name)
        print(df, '\n')


New South Wales - BMth
    BMth Bid Ask Last +/- Vol  Settle
0  Jul24   -   -    -   -   -  130.75
1  Aug24   -   -    -   -   -  117.74
2  Sep24   -   -    -   -   -   97.43
3  Oct24   -   -    -   -   -  110.00 

New South Wales - BQtr
   BQtr     Bid     Ask    Last +/-  Vol  Settle
0  Q324  113.50  115.50  115.50   -   40  115.50
1  Q424  109.50  110.00  110.00   -   16  110.00
2  Q125  126.10  126.70  126.10   -   16  126.10
3  Q225  130.15  130.50  130.15   -   21  130.15
4  Q325  125.00  126.85  126.18   -   23  126.18 

New South Wales - BStr
   BStr     Bid     Ask    Last    +/- Vol  Settle
0  FY25  120.29  121.00       -      -   -  120.38
1  CY25  121.00  122.50  122.00      -  14  122.00
2  FY26  120.00  122.00  121.00  -0.19   4  121.19
3  CY26  120.50  121.25  121.50  +0.69   7  120.81
4  FY27  120.25  121.00       -      -   -  120.43 

New South Wales - Caps
   Caps    Bid    Ask   Last    +/- Vol  Settle
0  Q324  10.00  11.00  10.00      -  17   10.00
1  Q424  20.25  21.50  20.50  +0.25  10   20.25
2  Q125  41.00  43.00      -      -   -   41.46
3  Q225  25.50  27.00      -      -   -   26.66
4  Q325  25.00      -      -      -   -   26.54 

New South Wales - CapStr
  CapStr    Bid    Ask   Last    +/- Vol  Settle
0   FY25      -      -      -      -   -   24.49
1   CY25      -      -      -      -   -   28.96
2   FY26  29.40      -      -      -   -   29.40
3   CY26  28.50  30.00  29.00  -0.35   1   29.35
4   FY27  29.00  30.00      -      -   -   29.93 

New South Wales - PQtr
   PQtr     Bid     Ask Last +/- Vol  Settle
0  Q324  116.00  160.00    -   -   -  160.00
1  Q424  125.00  160.00    -   -   -  145.00
2  Q125       -       -    -   -   -  170.73
3  Q225       -       -    -   -   -  150.00
4  Q325       -       -    -   -   -  140.00 

Victoria - PkStr
  PkStr Bid Ask Last +/- Vol  Settle
0  FY25   -   -    -   -   -  156.47
1  CY25   -   -    -   -   -  144.42
2  FY26   -   -    -   -   -  147.97
3  CY26   -   -    -   -   -  160.00
4  FY27   -   -    -   -   -  148.94 

Victoria - BMth
    BMth Bid    Ask Last +/- Vol  Settle
0  Jul24   -      -    -   -   -  142.58
1  Aug24   -      -    -   -   -  108.21
2  Sep24   -  80.00    -   -   -   71.28
3  Oct24   -      -    -   -   -   58.95 

Victoria - BQtr
   BQtr     Bid     Ask    Last    +/-  Vol  Settle
0  Q324  107.75  108.50  107.75      -   18  107.75
1  Q424   58.50   58.95   59.00  +0.05   14   58.95
2  Q125   73.40   74.00   73.50      -   13   73.50
3  Q225   93.00   93.80   93.80      -   10   93.80
4  Q325   88.00   89.25   88.50      -    5   88.50 

Victoria - BStr
   BStr    Bid    Ask   Last    +/- Vol  Settle
0  FY25      -      -      -      -   -   83.53
1  CY25  76.25  76.85  76.65  +0.29   2   76.36
2  FY26  70.00  73.30      -      -   -   72.22
3  CY26  65.50  70.24  69.80  +0.25   8   69.55
4  FY27      -      -      -      -   -   70.17 

Victoria - Caps
   Caps    Bid   Ask   Last    +/- Vol  Settle
0  Q324   6.75   7.5   8.15  +0.65  18     7.5
1  Q424   5.00   7.0      -      -   -     6.3
2  Q125  27.75  29.0  28.00      -  20    28.0
3  Q225   8.25  11.5      -      -   -    10.0
4  Q325  10.50  11.5      -      -   -    10.5 

Victoria - CapStr
  CapStr    Bid    Ask Last +/- Vol  Settle
0   FY25      -      -    -   -   -   12.88
1   CY25  13.00  15.25    -   -   -   14.25
2   FY26  13.85  15.25    -   -   -   14.49
3   CY26  14.50  16.00    -   -   -   14.81
4   FY27  15.40      -    -   -   -   15.42 

Queensland - PQtr
   PQtr     Bid Ask Last +/- Vol  Settle
0  Q324  111.11   -    -   -   -   140.0
1  Q424       -   -    -   -   -    64.5
2  Q125       -   -    -   -   -   103.0
3  Q225       -   -    -   -   -   120.0
4  Q325       -   -    -   -   -   119.0 

Queensland - PkStr
  PkStr Bid Ask Last +/- Vol  Settle
0  FY25   -   -    -   -   -  107.07
1  CY25   -   -    -   -   -  102.24
2  FY26   -   -    -   -   -   77.04
3  CY26   -   -    -   -   -   60.00
4  FY27   -   -    -   -   -   60.00 

Queensland - BMth
    BMth Bid Ask Last +/- Vol  Settle
0  Jul24   -   -    -   -   -  108.07
1  Aug24   -   -    -   -   -   89.86
2  Sep24   -   -    -   -   -   89.86
3  Oct24   -   -    -   -   -   97.00 

Queensland - BQtr
   BQtr     Bid     Ask    Last +/- Vol  Settle
0  Q324   96.00  101.75       -   -   -   96.00
1  Q424   96.75   97.50   97.00   -  12   97.00
2  Q125  133.00  133.50  133.50   -  18  133.50
3  Q225   99.80  100.45   99.80   -  31   99.80
4  Q325   95.00   96.75   96.01   -  15   96.01 

Queensland - BStr
   BStr     Bid     Ask    Last    +/- Vol  Settle
0  FY25  106.50  109.75       -      -   -  106.45
1  CY25  104.00  104.50  104.00  -0.22   7  104.22
2  FY26   99.50  100.00   99.75  -0.12   4   99.87
3  CY26   97.00   98.00   97.40  -0.02   2   97.42
4  FY27       -   94.70   94.50  +0.11   2   94.39 

Queensland - Caps
   Caps    Bid    Ask   Last    +/- Vol  Settle
0  Q324   7.00   9.00   8.25      -  15    8.25
1  Q424  17.25  18.90  19.00  +0.10   1   18.90
2  Q125  42.00  45.25  45.00      -   1   45.00
3  Q225      -  17.00      -      -   -   17.00
4  Q325      -      -      -      -   -   16.84 

South Australia - CapStr
  CapStr    Bid    Ask   Last +/- Vol  Settle
0   FY25      -      -      -   -   -   22.18
1   CY25      -  23.85      -   -   -   23.74
2   FY26      -  23.30      -   -   -   23.19
3   CY26  21.50  23.50  22.99   -  10   22.99
4   FY27      -      -      -   -   -   22.78 

South Australia - PQtr
   PQtr    Bid Ask Last +/- Vol  Settle
0  Q324   95.0   -    -   -   -    95.0
1  Q424  100.0   -    -   -   -   100.0
2  Q125  160.0   -    -   -   -   160.0
3  Q225  100.0   -    -   -   -   100.0
4  Q325   90.0   -    -   -   -    90.0 

South Australia - PkStr
  PkStr Bid Ask Last +/- Vol  Settle
0  FY25   -   -    -   -   -  113.53
1  CY25   -   -    -   -   -  107.21
2  FY26   -   -    -   -   -   69.79
3  CY26   -   -    -   -   -   54.00
4  FY27   -   -    -   -   -   54.00 

South Australia - BMth
    BMth Bid Ask Last +/- Vol  Settle
0  Jul24   -   -    -   -   -  129.78
1  Aug24   -   -    -   -   -  129.78
2  Sep24   -   -    -   -   -  129.78
3  Oct24   -   -    -   -   -   67.32 

South Australia - BQtr
   BQtr     Bid     Ask Last +/- Vol  Settle
0  Q324       -  154.75    -   -   2  129.78
1  Q424       -       -    -   -   2   67.32
2  Q125  108.50  120.00    -   -   2  117.08
3  Q225       -  123.50    -   -   2  116.12
4  Q325       -       -    -   -   -  119.00 

South Australia - BStr
   BStr     Bid     Ask    Last +/- Vol  Settle
0  FY25       -       -  107.50   -   2  107.50
1  CY25       -       -       -   -   -  105.90
2  FY26       -  108.00       -   -   -  104.38
3  CY26       -       -       -   -   -  103.45
4  FY27  100.00  105.00       -   -   -  103.14 

Другие вопросы по теме