Я читаю содержимое веб-страницы, используя BeautifulSoup. Я хочу просто взять <a href>
, начинающийся с http://
. Я знаю, что в BeautifulSoup вы можете искать по атрибутам. Я думаю, у меня просто проблема с синтаксисом. Я бы предположил, что это будет что-то вроде.
page = urllib2.urlopen("http://www.linkpages.com")
soup = BeautifulSoup(page)
for link in soup.findAll('a'):
if link['href'].startswith('http://'):
print links
Но это возвращает:
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "C:\Python26\lib\BeautifulSoup.py", line 598, in __getitem__
return self._getAttrMap()[key]
KeyError: 'href'
Есть идеи? Заранее спасибо.
EDIT
Это не для какого-либо конкретного сайта. Скрипт получает URL от пользователя. Таким образом, внутренняя ссылка будет проблемой, поэтому я также хочу только <'a'>
со страниц. Если я поверну его в сторону www.reddit.com
, он анализирует начальные ссылки и получит следующее:
<a href="http://www.reddit.com/top/">top</a>
<a href="http://www.reddit.com/saved/">saved</a>
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "C:\Python26\lib\BeautifulSoup.py", line 598, in __getitem__
return self._getAttrMap()[key]
KeyError: 'href'