Дмитрий Падучих wrote:
Действительно просто, спасибо, вот и до работы с дебагером добрался ).
наделал примеров простых запросов:
;; ...остальные правила
("wikipedia-ru"
"http://ru.wikipedia.org/w/index.php?title=Служебная:Search&search=%s&go=Перейти"
utf-8)
("debian-packages"
"http://packages.debian.org/search?keywords=%s&searchon=names&suite=all§ion=all"
koi8-r)
("blinux-rus"
"http://www.mail-archive.com/search?q=%s&l=blinux-rus%%40lists.a11ywiki.org"
koi8-r)
("forum.ubuntu.ru"
"http://www.google.ru/search?q=%s&submit=%%d0%%9f%%d0%%be%%d0%%b8%%d1%%81%%d0%%ba&sitesearch=ubuntu.ru&hl=ru"
utf8)
("linuxforum"
"http://www.google.ru/search?q=%s&submit=%%d0%%9f%%d0%%be%%d0%%b8%%d1%%81%%d0%%ba&sitesearch=linuxforum.ru/lofiversion/index.php/f13&hl=ru"
koi8-r)
("lor"
"http://www.linux.org.ru/search.jsp?q=%s&include=all&date=year§ion=0&username=&sort=1"
koi8-r)
("lor-google"
"http://www.google.ru/custom?domains=www.linux.org.ru&q=%s&sa=%%d0%%9f%%d0%%be%%d0%%b8%%d1%%81%%d0%%ba&sitesearch=www.linux.org.ru&client=pub-6069094673001350&forid=1&ie=UTF-8&oe=UTF-8&flav=0000&sig=VNPb2D8JZrqtw9dZ&cof=GALT:%%233399FF%%3bGL:1%%3bDIV:%%23666666%%3bVLC:FFFFFF%%3bAH:center%%3bBGC:000000%%3bLBGC:FFFF00%%3bALC:FFFFFF%%3bLC:FFFFFF%%3bT:CCCCCC%%3bGFNT:FFFFFF%%3bGIMP:FFFFFF%%3bLH:65%%3bLW:30%%3bL:http://www.linux.org.ru/black/img/angry-logo.gif%%3bS:http://%%3bLP:1%%3bFORID:1&hl=ru"
koi8-r)
))
правила работают, но для запросов на латинице.
русские символы рисует кракозябрами , либо вопросиками .
В случае с wiki blinux-rus
Location:
http://www.mail-archive.com/search?q=%c1%d5%c4%c9%cf&l=blinux-rus%40lists.a11ywiki.org
MOD_PYTHON ERROR
ProcessId: 7042
Interpreter: 'www.mail-archive.com'
ServerName: 'www.mail-archive.com'
DocumentRoot: '/home/archive/archive'
URI: '/py/search/lucene_search.py'
Location: None
Directory: '/var/www/python/search/'
Filename: '/var/www/python/search/lucene_search.py'
PathInfo: ''
Phase: 'PythonHandler'
Handler: 'lucene_search'
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1537, in
HandlerDispatch
default=default_handler, arg=req, silent=hlist.silent)
File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1229, in
_process_target
result = _execute_target(config, req, object, arg)
File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1128, in
_execute_target
result = object(arg)
File "/var/www/python/search/lucene_search.py", line 170, in handler
query_input = cgi.escape(form['q'].decode('utf-8'), False)
File "/usr/lib/python2.5/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-1: invalid
data
MODULE CACHE DETAILS
Accessed: Sun Jan 31 21:59:42 2010
Generation: 0
_mp_18b66d1f7a368d81b82e590c38682094 {
FileName: '/var/www/python/search/lucene_search.py'
Instance: 1 [IMPORT]
Generation: 1
Modified: Tue Jan 12 19:17:44 2010
Imported: Sun Jan 31 21:59:42 2010
}
указывал в правилах и utf8, получаю ошибки типа
w3m-url-encode-string: Invalid coding system: utf8
Что делаю не так?
И еще не понятно что значит %s и %%.
> tolyangin:
>
> To> Вчитываясь в исходный код страницы и ваши примеры правил, озарение
> To> как составить запрос не приходит.
>
> To> научите как составлять правила для сабжа. Желательно с
> To> комментариями используемых символов.
>
> Я делал так. Вычислил форму:
>
> (defadvice w3m-goto-url (before test act) (debug))
>
> После этого Emacs перед выполнением функции w3m-goto-url будет
> открывать буфер дебагера. Из него можно взять первый аргумент функции
> w3m-goto-url - это и будет адрес запроса, если Вы посылали запрос. В
> этом буфере можно прервать выполнение, нажав q, или продолжить, нажав
> c. defadvice можно включать и выключать при помощи, соответственно:
>
> M-x ad-activate RET w3m-goto-url RET
> M-x ad-deactivate RET w3m-goto-url RET
>
> На странице с формой введите строку запроса и нажмите нужную
> кнопку. Так как русские символы кодируются, а Вам надо будет найти эту
> строку в полученном адресе, то лучше вводить строку латиницей и
> использовать что-нибудь уникальное, например, tolyangin. Появится
> буфер дебагера, из которого можно взять адрес. В адресе замените все
> знаки % на %%. После этого замените строку запроса (например,
> tolyangin) на %s.
>
> В правиле для русской википедии я декодировал все русские символы, но
> лучше этого не делать, а вместо этого заменить % на %%.
>
> Чтобы совсем убрать defadvice для функции, выполните
>
> M-x ad-unadvise RET w3m-goto-url RET
--
Blinux-rus mailing list
[email protected]
http://www.a11ywiki.org/cgi-bin/mailman/listinfo/blinux-rus