Найти - Пользователи
Полная версия: Parsing HTML, BeautifulSoup
Начало » Python для экспертов » Parsing HTML, BeautifulSoup
1
Yurietc
Привет всем.
Кто гуру в BeautifulSoup, подскажите с чем связана ошибка :

>>> from BeautifulSoup import BeautifulSoup as BS
>>> st = '<html><body><p>1</p><p>2</p><p>3</p></body></html>'
>>> so = BS(st)
>>> i = 0
>>> for items in so('p'):
print so('p')[i].string
i = i + 1

Traceback (most recent call last):
File "<pyshell#73>", line 2, in <module>
print so('p')[i].string
RuntimeError: maximum recursion depth exceeded

хотя если так, все работает :

>>> so('p')[0].string
u'1'
>>> so('p')[1].string
u'2'
>>> so('p')[2].string
u'3'

И еще, как получить параметры, заданные в тэге ?
Например с “<p align = ”center“>” получить “center”.
j2a
Странно циклы пишешь…

>>> from BeautifulSoup import BeautifulSoup as BS

>>> html = ‘<html><body><p>1</p><p>2</p><p>3</p></body></html>’

>>> soup = BS(html)

>>> for item in soup('p'):
…: print item.string
…:
1
2
3
Yurietc
Мне становится страшно :

from BeautifulSoup import BeautifulSoup as BS
>>> html = ‘<html><body><p>1</p><p>2</p><p>3</p></body></html>’
>>> soup = BS(html)
>>> for item in soup('p'):
print item.string

Traceback (most recent call last):
File “<pyshell#168>”, line 2, in <module>
print item.string
RuntimeError: maximum recursion depth exceeded


P.S. А насчет странности цикла - исправлюсь.
Yurietc
Я в панике - есть разные версии BeautifulSoup. Одна из них выдает еще такую ошибку :

from BeautifulSoup import BeautifulSoup as BS
>>> html = ‘<html><body><p>1</p><p>2</p><p>3</p></body></html>’
>>> soup = BS(html)
>>> for item in soup('p'):
print item.string

Traceback (most recent call last):
File “<pyshell#185>”, line 2, in <module>
print item.string
File “C:\Python25\lib\idlelib\rpc.py”, line 597, in __call__
value = self.sockio.remotecall(self.oid, self.name, args, kwargs)
File “C:\Python25\lib\idlelib\rpc.py”, line 210, in remotecall
seq = self.asynccall(oid, methodname, args, kwargs)
File “C:\Python25\lib\idlelib\rpc.py”, line 225, in asynccall
self.putmessage((seq, request))
File “C:\Python25\lib\idlelib\rpc.py”, line 324, in putmessage
s = pickle.dumps(message)
File “C:\Python25\lib\copy_reg.py”, line 70, in _reduce_ex
state = base(self)
File “C:\Python25\BeautifulSoup.py”, line 358, in __unicode__
return __str__(self, None)
NameError: global name ‘__str__’ is not defined


Где взять наилучшую версию для python 2.5.1 под винду ?
crummy.com упал и встать не может.
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