Уведомления

Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Апрель 1, 2007 16:59:34

philosof
От:
Зарегистрирован: 2007-03-16
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с ClientTable

Хочу прасить таблици, использую 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’


при, этом на примерах страниц где находится одна таблица этот код работает.
Поделитесь своими рассуждениями на дану тему и вообще парсингом таблиц и форм.
Кто, что подскажет? Заранее спасибо.



Офлайн

#2 Апрель 1, 2007 18:48:34

philosof
От:
Зарегистрирован: 2007-03-16
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с ClientTable

Ошибку я уже устранил, просто нашол модуль ClientTable побольше, тот был старенький для питона 2.2.
Но очень буду благодарен если Вы, господа хорошие, напишете несколко ссылок на примеры работы этого модуля. Чтобы побыстрее с ним разобраться.



Офлайн

#3 Апрель 2, 2007 17:36:14

dvs
От:
Зарегистрирован: 2006-05-22
Сообщения: 176
Репутация: +  3  -
Профиль   Отправить e-mail  

Работа с ClientTable

philosof
Ошибку я уже устранил, просто нашол модуль ClientTable побольше, тот был старенький для питона 2.2.
Но очень буду благодарен если Вы, господа хорошие, напишете несколко ссылок на примеры работы этого модуля. Чтобы побыстрее с ним разобраться.
По ClientTable – это http://codespeak.net/svn/wwwsearch/ClientTable/trunk/test.py смотрел?

Для парсинга HTML можно глянуть BeautifulSoup.



Офлайн

#4 Апрель 4, 2007 05:13:23

philosof
От:
Зарегистрирован: 2007-03-16
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с ClientTable

Да, смотрел только они мне не помогли.
При работе с некоторыми страницами выскакивают ошибки
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
Поскольку, для такой расстановки используються таблици, я работаю з ними, средствами Питона.
Подскажите, подкиньте свежую идейку.



Офлайн

#5 Апрель 4, 2007 21:06:47

kulibinka
От:
Зарегистрирован: 2007-03-21
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с ClientTable

1. если ошибки - подправь хтмл.
beautifulSoup.prettify()



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version