Как очистить Td от текста внутри контейнера с помощью Python - PullRequest
1 голос
/ 03 мая 2019

Я пытаюсь очистить текст из контейнера, но не могу понять, как очистить его.

Этот код предназначен для скребка, который извлекает три столбца для каждой записи с веб-страницы, отформатированной следующим образом:

<td class="EP">1</td>
</tr>
<tr class="EG">
<td>
</td>
<td>
<a href="https://www.COMPANYWEBSITE/">COMPANY NAME</a>
</td>
<td DO="9999">
<div class="BN">9999</div>
<img src="https://www.IMAGE.com">
</td>
<td>
Keyword 1, Keyword 2, Keyword 3, Keyword 4
</td>
<td>New York City</td>
<td>USA</td>

Я успешно удалил ИМЯ КОМПАНИИ и BN (т. Е. 9999), но мне нужно также проанализировать каждое из ключевых слов, и вот тут у меня возникли проблемы.

Я использовал следующий код Python:

page_soup = soup(page_html, "html.parser") 
TT = page_soup.findAll("tr",{"class":"EG"})
container = TT[0]

for container in TT:

    company_name = container.a.text

    b_n = container.div.text

    keywords = container.?????

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

Ответы [ 2 ]

2 голосов
/ 03 мая 2019

Вы можете использовать nth-of-type

from bs4 import BeautifulSoup as bs

html = '''
<td class="EP">1</td>
</tr>
<tr class="EG">
<td>
</td>
<td>
<a href="https://www.COMPANYWEBSITE/">COMPANY NAME</a>
</td>
<td DO="9999">
<div class="BN">9999</div>
<img src="https://www.IMAGE.com">
</td>
<td>
Keyword 1, Keyword 2, Keyword 3, Keyword 4
</td>
<td>New York City</td>
<td>USA</td>

'''

page_soup = bs(html, 'lxml')
TT = page_soup.findAll("tr",{"class":"EG"})
for container in TT:
    print(container.select_one('td:nth-of-type(4)').text)
0 голосов
/ 03 мая 2019

Пока ключевые слова всегда находятся в четвертом столбце, вы можете выбрать все TD s из контейнера и выбрать четвертый:

container.findAll('td')[3].string.strip().split(', ')
#['Keyword 1', 'Keyword 2', 'Keyword 3', 'Keyword 4']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...