Найти - Пользователи
Полная версия: Работа с ClientTable
Начало » Python для экспертов » Работа с ClientTable
1
philosof
Хочу прасить таблици, использую 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’


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

Для парсинга HTML можно глянуть BeautifulSoup.
philosof
Да, смотрел только они мне не помогли.
При работе с некоторыми страницами выскакивают ошибки
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
Поскольку, для такой расстановки используються таблици, я работаю з ними, средствами Питона.
Подскажите, подкиньте свежую идейку.
kulibinka
1. если ошибки - подправь хтмл.
beautifulSoup.prettify()
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