Итерации в Python и BeautifulSoup - PullRequest
0 голосов
/ 05 марта 2011
soup = BeautifulSoup(html).findAll('div', 'thread')
  for i in soup:
    print i

Я возьму только эту часть кода, потому что там я застреваю.

Soup возвращает список, я попытался использовать '' .join (), чтобы получить буквенную строку, и это не сработало, потому что ожидалось, что это строка, а не тег. Я думаю, это своего рода ошибка.

Повторяя, он выводит на экран весь список без запятой.

Но я хочу получить href-контент внутри div cass = "thread"

Я пробовал много вещей, таких как

soup = BeautifulSoup(html).findAll('div', 'thread')
  for i in soup:
    print BeautifulSoup(i)('a')['href']

Последний код дает мне объект 'NoneType' не callabe.

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

Ответы [ 2 ]

1 голос
/ 05 марта 2011

Это должно быть что-то вроде
divs = BeautifulSoup(html).findAll('div','thread')<br> for div in divs:<br> print div.find('a').attr['href'] // may it be map(a.attrs)['href'], i dont remember now

0 голосов
/ 05 марта 2011

взглянем на документацию для этого модуля / класса (http://www.crummy.com/software/BeautifulSoup/documentation.html) - второй аргумент для findAll - это объект json, а не строка. Вы пробовали это вместо этого:

BeautifulSoup(html).findAll('div', { 'class': 'thread' })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...