Найти - Пользователи
Полная версия: Адрес e-mail генерирует javascript. Как сгенерировать под python?
Начало » Python для новичков » Адрес e-mail генерирует javascript. Как сгенерировать под python?
1
agryn
хочу извлечь электронные адреса с сайта .
адрес электроники генерируется javascript-скриптом
пример кода с (http://www.mascus.com/heisel-equipment-company/51b81b77,companycard.html)
<span id="h754242Y"></span><script type="text/javascript">\n//<![CDATA[\n$(function() { var s929242H = function(b123968E) { b123968E=b123968E.replace(/c176057T/g,\'\'); b123968E=b123968E.replace(/x632816X/g,\'.\'); b123968E=b123968E.replace(/h21374K/g,\'@\'); return b123968E; };\nvar o938391R = function(q466574K) { var d748892R=\'\'; for (var i=q466574K.length-1;i>=0;i--) { d748892R+=q466574K[i]; } return d748892R; };\nvar v540997O = function(i500895E,h909762E) { var m613707L=s929242H(o938391R(i500895E)); var l283256W=\'ilt\';l283256W=\'ma\'+l283256W;l283256W+=\'o\'; if (!h909762E) { h909762E=m613707L; } $(\'#h754242Y\').html(\'<\' + \'a \' + \'rel\'+  \'="no\' +\'f\'+\'oll\'+ \'ow" class="Orange12Bold" hr\' + \'ef="#">\'+h909762E+\'<\'+\'/\' +\'a\'  + \'>\'); var c176057T = function() { $(this).attr(\'hr\' +\'e\'+ \'f\', l283256W+ \':\'+m613707L); }; $(\'#h754242Y a\').mouseover(c176057T); };\nvar u48036O=[\'com\',\'816X\',\'632\',\'lx\',\'ai\',\'tm\',\'To\',\'57\',\'760\',\'Khc1\',\'1374\',\'13h2\',\'el\',\'is\',\'_he\',\'rk\',\'ma\'];var m238820U=null;v540997O(u48036O,m238820U);});\n//]]>\n</script>
не подскажите как с такого кода сгенерировать адрес электроники.
lorien
Подскажем:
from ghost import Ghost
from lxml.html import fromstring

url = 'http://www.mascus.com/21st-century-equipment-inc-gordon/282e0a01,companycard.html'

ghost = Ghost()
page, extra_resources = ghost.open(url)
tree = fromstring(ghost.content)
items = tree.xpath('//span[text()="E-mail address:"]/..'\
'/following-sibling::td[1]'
'//a[contains(text(), "@")]')
for item in items:
print item.text

http://jeanphix.me/Ghost.py/
Seganapa
lorien Не подскажешь Ghost возможно под винду настроить? А то я что-то начал, да так и не осилил… Ошибки валятся…
lorien
Не знаю, я в линуксе шарю только.
agryn
lorien, Я пробую запустить скрипт с примером кода под ubuntu 12.04.i686, все зависимости для Ghost установлены, но все таки как я понял нужно запускать иксы для работы Ghost-а (после
ghost = Ghost()
вываливаетса
Xvfb is required to a ghost run oustside an X instance
). Не подскажите как запустить иксы с потреблением минимума ресурсов?
lorien
Подскажем. Ставишь Xvfb:
sudo aptitude Xvfb
Запускаешь:
Xvfb :0 -screen 0 1024x768x16
Далее запускаешь команду:
DISPLAY=:0.0 python yourscript.py
agryn
Последний вопрос. Эти все файлы с которых мне нужно стянуть электроники уже сохранены на диске. Как бы их загнать в Ghost?
reclosedev
agryn
Эти все файлы с которых мне нужно стянуть электроники уже сохранены на диске. Как бы их загнать в Ghost?
"file://localhost/full/path/to/some/file.html"
должно сработать
agryn
Вариант такой записи сработал. Но от такая ошибка:
---------------------------------------------------------------------------
Exception Traceback (most recent call last)
/root/<ipython-input-5-5b73efb33967> in <module>()
----> 1 page, extra_resources = ghost.open(url)

/usr/local/lib/python2.7/dist-packages/ghost/ghost.pyc in open(self, address, method)
387 self.main_frame.load(request, method, body)
388 self.loaded = False
--> 389 return self.wait_for_page_loaded()
390
391 class prompt:

/usr/local/lib/python2.7/dist-packages/ghost/ghost.pyc in wait_for_page_loaded(self)
492 """
493 self._wait_for(lambda: self.loaded,
--> 494 'Unable to load requested page')
495 resources = self._release_last_resources()
496 page = None

/usr/local/lib/python2.7/dist-packages/ghost/ghost.pyc in _wait_for(self, condition, timeout_message)
554 while not condition():
555 if time.time() > (started_at + self.wait_timeout):
--> 556 raise Exception(timeout_message)
557 time.sleep(0.01)
558 self.app.processEvents()
Exception: Unable to load requested page
увеличение таймаута к 30 сек не увенчалось успехом. Нет ли возможности запустить єтот кусок кода с помощью eval (я пробовал по разному но не получилось).
lorien
Видимо, потому что Ghost пытается подгрузить скрипты и стили и прочие объекты, прописанные в HTML сохранённых страниц, но т.к. ссылки там относительные, то он не может ничего загрузить.
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