Извлечь часть веб-царапины - PullRequest
0 голосов
/ 03 мая 2020

Я удалил определенную часть веб-сайта и теперь должен извлечь определенные части (код компании) этого кода. Вот код html:

<table class="wsod_dataTable wsod_dataTableBigAlt">
    <tr>
        <th style="width: 325px;">Company</th>
        <th style="width: 65px;" class="wsod_aRight">Price</th>
        <th style="width: 65px;" class="wsod_aRight">Change</th>
        <th style="width: 65px;" class="wsod_aRight">%&nbsp;Change</th>
    </tr>
        <tr>
            <td><a href="/quote/quote.html?symb=GE" class="wsod_symbol">GE</a> <span title="General Electric Co">General Electric Co</span></td>
            <td class="wsod_aRight"><span stream="last_136780" streamFeed="General Electric Co">6.50</span></td>
            <td class="wsod_aRight"><span stream="change_136780" streamFeed="General Electric Co"><span class="negData">-0.30</span></span></td>
            <td class="wsod_aRight"><span stream="changePct_136780" streamFeed="General Electric Co"><span class="negData">-4.41%</span></span></td>

Вот код, который я использовал для выделения таблицы:

    import requests
    from bs4 import BeatifulSoup as bs
    url=requests.get('https://money.cnn.com.data/hotstocks/")
    soup=bs(url.content, 'html.parser')
    table=soup.find('table', attrs={'class':'wsod_dataTable wsod_dataTableBigAlt'}).text)

Созданная таблица содержит следующие выходные данные:

Company
Price
Change
% Change

GE General Electric Co
6.50
-0.30
-4.41

Мне нужно извлечь только часть «GE» этого вывода. Любая помощь?

Я также предполагаю, что есть гораздо более простой способ сделать это без полной изоляции таблицы

1 Ответ

0 голосов
/ 04 мая 2020

Примерно так должно работать

На этом я выбираю только первую таблицу:

import requests
from bs4 import BeautifulSoup as bs

url=requests.get('https://money.cnn.com/data/hotstocks/')
soup=bs(url.content, 'html.parser')

#find the tables
tbls = soup.find_all("table", class_="wsod_dataTable")

#select the first table
tbl1 = tbls[0]

#get all a tags 
records = tbl1.find_all("a", class_="wsod_symbol")
#pull out text only
records = [r.text for r in records]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...