Найти - Пользователи
Полная версия: парсинг html BeautifulSoup
Начало » Python для новичков » парсинг html BeautifulSoup
1
py.webs
Собираем ссылки с словом “word” внутри url:
soup = BeautifulSoup.BeautifulSoup(html)
urls = [tag['href'] for tag in soup.findAll('a')]
f = lambda x: True if (x[:4] == "word") else False
print filter(f, urls)
Часть сайтов выдает ошибки:
1. ‘malformed start tag’
2. KeyError: ‘href’
Первая более - менеее понятна, суп считает ‘html’ невалидным. Возможно ли избежать?
Причина второй не ясна. Сылки в скармливаемом супу ‘html’ есть.

И умеет ли BeautifulSoup собирать ссылки с заданным словом в анкоре? Вроде '<a href="http://domain.com/">'*world*'</a>'

Может быть есть лучшее решение для подобных задач?
py.user.next
py.webs
Причина второй не ясна. Сылки в скармливаемом супу ‘html’ есть.
может там не только ссылки, но и <a name
сначала нужно делать проверку на наличие атрибута, а потом уже брать из него значение
есть модуль htmllib
majestic
Замени:
urls = [tag['href'] for tag in soup.findAll('a')]
на:
urls = [tag.get('href') for tag in soup.findAll('a') if tag.get('href') != None]
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB