2016-06-21 1 views
1

Я хочу удалить строки таблицы (tr), содержащие слово «Изменить». Как я могу изменить код ниже, чтобы это произошло?Удалить элементы в соответствии с текстовым контентом с помощью BeautifulSoup

for e in soup.findAll("tr"): 
    e.extract() 

*** Edit:

Я попытался следующие без толку:

for e in soup.findAll('tr', text = re.compile('.*Amend.*')): 
    e.extract() 

*** Edit:

Это страница, на которую я работаю на:

https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=AAON&type=10&dateb=&owner=exclude&count=40

+0

Там нет тра с поправкой, там является «[Amend]' –

+0

В одном из трех элементов есть ребенок с термином «изменить», извините, я должен был указать это. –

ответ

1

Как насчет найти все узлы, имеющие Amend, перейдите up the tree к tr и удаление:

for amend in soup.find_all(text=re.compile("Amend")): 
    tr = amend.find_parent("tr") 
    if tr: # safety feature 
     tr.extract() 

Или, в качестве альтернативы, вы можете использовать searching function:

for tr in soup.find_all(lambda node: node and \ 
            node.name == "tr" and \ 
            node.find(text=re.compile("Amend"))): 
    tr.extract() 
+0

Мне нравится ваше мышление, но оно не работает: Это страница, над которой я работаю: https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=AAON&type=10&dateb=&owner=exclude&count = 40 –

+0

Это работает, спасибо большое –

Смежные вопросы