url = 'http://www.millercenter.org/president/speeches'
conn = urllib2.urlopen(url)
html = conn.read()
miller_center_soup = BeautifulSoup(html)
links = miller_center_soup.find_all('a')
linklist = [tag.get('href') for tag in links if tag.get('href') is not None]
linklist = str(linklist)
end_of_links = [line for line in linklist if '/events/' in line]
print end_of_links
Это крошечный фрагмент моего вывода (сохраненный в списке Python).Удалить элементы из списка не в 'речах'?
['/events/2015/one-nation-under-god-how-corporate-america-invented-christian-america',
'/events/2015/a-conversation-with-bernie-sanders', '#reagan', '#gwbush', '#obama',
'#top', '/president/obama/speeches/speech-4427', president/obama/speeches/speech-4430', ...]
Я хочу, чтобы удалить все элементы в списке, которые не содержат speeches
. Я пробовал filter()
и просто создал другое понимание списка, но это еще не сработало. Я не знаю, почему переменная end_of_links
не работает - по крайней мере, мне кажется интуитивным.
при создании другого списка подходит вам: '[el for el in l if' speeches 'not in el]' – Pynchia
Больше apropros, вы имеете в виду 'line for line в linklist if 'speeches' not in linklist'? Это все еще дает мне пустой список, после того. – blacksite
'l' - ваш список входных данных, из которого вам нужно удалить элементы, содержащие« речей ». Я понятия не имею, в каком списке вы хотите работать, поскольку я не вижу «речей» в вашей попытке кода. – Pynchia