BeautifulSoup - Работа с несогласованным количеством диапазонов в строке таблицы - PullRequest
0 голосов
/ 07 мая 2020

Моя цель - вернуть пустое значение, где нет второй итерации до go через в моем for l oop, чтобы я мог последовательно заполнять две записи за итерацию. Описание ниже:

У меня есть основная таблица на веб-странице, которая содержит вложенные таблицы, каждая из которых имеет две строки, из которых я хотел бы извлечь данные.

Я хочу извлечь две точки данных из первой строки каждой таблицы.

Приведенный ниже код в настоящее время выполняет итерацию по первой строке каждой таблицы и получает текстовое значение каждого тега «span»:

headers = ['Company','Ticker','RNS Title']
#GET FIRST ROWS
for table in results_table.find_all('table'):  
    #find first row in each table
    for firstRow,header in zip(table.find_all('tr',{'class':'firstRowRns'}),headers):

        for span in firstRow.find_all('span'):
            print (span.text)
            print('***this is one span text****')
        print('***first row complete****')

Как вы можете видеть из моего списка заголовков, первые два диапазона должны заполнять «Company» и «Ticker».

Моя проблема в том, что иногда первая строка имеет один диапазон (отсутствует тикер). Две записи (здесь я хочу Company = Keystone, Ticker = KIT):

    </table>, <table cellpadding="0" cellspacing="0" class="width100">
<tr class="firstRowRns">
<!-- Name, tidm, headline -->
<td>
<span>Keystone Investment Trust Plc</span>
<span>- KIT</span>
<a href="javascript: var x=openWin2('           

...

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

<table cellpadding="0" cellspacing="0" class="width100">
<tr class="firstRowRns">
<!-- Name, tidm, headline -->
<td>
<span>PR Newswire</span>
<a href="javascript: var x=openWin2('
...     

Я бы хотел чтобы вернуть пустое значение там, где нет второго тега диапазона, чтобы я мог последовательно заполнять две записи за итерацию.

Любая помощь приветствуется.

Спасибо, Шон

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...