Форум сайта python.su
Хочу прасить таблици, использую ClientTable. Но те страници которые мне нужны выскакивают с ошибкой. Посмотрите:
import urllib2
import ClientTable
response = urllib2.urlopen("http://www.vsego.ru/addurl.phtml")
tables = ClientTable.ParseFile(response,collapse_whitespace=1,recode_entities=None)
response.close()
table = tables
Traceback (most recent call last):
File “D:\—P_Y_T_H_O_N–\A_N_A_L_O_G__1PS\ANALOG.py”, line 49, in ?
tables = ClientTable.ParseFile(response,collapse_whitespace=1,recode_entities=None)
File “C:\Python24\lib\site-packages\ClientTable.py”, line 130, in ParseFile
tp.feed(data)
File “C:\Python24\lib\HTMLParser.py”, line 108, in feed
self.goahead(0)
File “C:\Python24\lib\HTMLParser.py”, line 183, in goahead
self.handle_entityref(name)
File “C:\Python24\lib\site-packages\ClientTable.py”, line 580, in handle_entityref
if self.recode_entities:
AttributeError: TableParser instance has no attribute ‘recode_entities’
при, этом на примерах страниц где находится одна таблица этот код работает.
Поделитесь своими рассуждениями на дану тему и вообще парсингом таблиц и форм.
Кто, что подскажет? Заранее спасибо.
Офлайн
Ошибку я уже устранил, просто нашол модуль ClientTable побольше, тот был старенький для питона 2.2.
Но очень буду благодарен если Вы, господа хорошие, напишете несколко ссылок на примеры работы этого модуля. Чтобы побыстрее с ним разобраться.
Офлайн
philosofПо ClientTable – это http://codespeak.net/svn/wwwsearch/ClientTable/trunk/test.py смотрел?
Ошибку я уже устранил, просто нашол модуль ClientTable побольше, тот был старенький для питона 2.2.
Но очень буду благодарен если Вы, господа хорошие, напишете несколко ссылок на примеры работы этого модуля. Чтобы побыстрее с ним разобраться.
Офлайн
Да, смотрел только они мне не помогли.
При работе с некоторыми страницами выскакивают ошибки
Traceback (most recent call last):
File “D:\—P_Y_T_H_O_N–\A_N_A_L_O_G__1PS\ANALOG.py”, line 47, in ?
tables = ClientTable.ParseFile(f_parse,collapse_whitespace=1, strip_tags=False, recode_entities=
None, ignore_errors=False)
File “C:\Python24\lib\site-packages\ClientTable.py”, line 145, in ParseFile
tp.feed(data)
File “C:\Python24\lib\HTMLParser.py”, line 108, in feed
self.goahead(0)
File “C:\Python24\lib\HTMLParser.py”, line 150, in goahead
k = self.parse_endtag(i)
File “C:\Python24\lib\HTMLParser.py”, line 316, in parse_endtag
self.handle_endtag(tag.lower())
File “C:\Python24\lib\site-packages\ClientTable.py”, line 717, in handle_endtag
method()
File “C:\Python24\lib\site-packages\ClientTable.py”, line 866, in end_td
if not self._ps.in_td: self.error(ParseError(“end of TD before start”))
File “C:\Python24\lib\site-packages\ClientTable.py”, line 658, in error
if not self._ignore_errors: raise error
ClientTable.ParseError: end of TD before start
или
Traceback (most recent call last):
File “D:\—P_Y_T_H_O_N–\A_N_A_L_O_G__1PS\ANALOG.py”, line 47, in ?
tables = ClientTable.ParseFile(f_parse,collapse_whitespace=1, strip_tags=False, recode_entities=
None, ignore_errors=False)
File “C:\Python24\lib\site-packages\ClientTable.py”, line 145, in ParseFile
tp.feed(data)
File “C:\Python24\lib\HTMLParser.py”, line 108, in feed
self.goahead(0)
File “C:\Python24\lib\HTMLParser.py”, line 148, in goahead
k = self.parse_starttag(i)
File “C:\Python24\lib\HTMLParser.py”, line 262, in parse_starttag
self.error(“junk characters in start tag: %r”
File “C:\Python24\lib\site-packages\ClientTable.py”, line 658, in error
if not self._ignore_errors: raise error
junk characters in start tag: ‘\xcd\xe0\xe9\xf2\xe8! name=btnG>’
я пытаюсь их игнорировать ignore_errors=True, но результат для меня плачебный, пропускаеться код который мне нужен.
А вообще проблемка у меня такая, я хочу по назвам полей формы, найти записи которые относятся именно к этому полю.
Например:
на форме есть текстовое поле, и к нему запись Имя
результат Имя: name
Поскольку, для такой расстановки используються таблици, я работаю з ними, средствами Питона.
Подскажите, подкиньте свежую идейку.
Офлайн
1. если ошибки - подправь хтмл.
beautifulSoup.prettify()
Офлайн