2015-02-22 4 views
1

Я использую пакет призраков в своем скрипте для очистки веб-сайта. Поскольку у меня есть много страниц, чтобы очистить, призрак используется много раз, около 30 раз на странице, и у меня может быть сотни страниц, чтобы очистить. Я заметил, что при запуске моего скрипта, что после примерно 25 страниц я начинаю получать ошибки Ghost :: Qt :: Qthread и даже до этого, кажется, что призрак не имеет постоянного значения: в основном призрак используется для извлечения номера телефона из простого страница вида:Есть ли способ удалить остатки Ghost.py после того, как я закончил использовать его?

this is how the webpage looks like - I'm extracting this phone #

Я подозревал, что его о перегрузке памяти или что-то подобное, но я должен признать, что я новичок в Python и не достаточно опытны в программировании (я из Hardware Мир).

Неужели кто-нибудь сталкивается с такими проблемами? Я знаю, что у призрака есть метод, называемый remove_page, который должен удалить созданную «страницу», но я попытался использовать ее, и я думаю, что она не работает (или я чего-то не хватает), вот код, в котором я пытаюсь использовать это удаление и после удаление, я все еще могу использовать объект:

from ghost import Ghost 
gh=Ghost() 
page, page_name = gh.create_page() 
gh.remove_page(page) 

После выполнения этой команды и набрав page я бы ожидать, чтобы не иметь каких-либо страницы определены. Как освободить ресурсы, удалить страницу, даже удалить созданный объект gh?

ответ

1

Предполагается, что данная версия Ghost.py (0.2.3) исправлена. Однако версии версии 0.1.2 имеют некоторые ошибки при загрузке определенных веб-сайтов. Выполнение кода Ghost.py в его собственном процессе будет исправить эти проблемы с памятью на старую версию:

from multiprocessing import Process 
from ghost import Ghost 

def load_page(url): 
    gh = Ghost() 
    page, page_name = gh.open(url) 

p = multiprocessing.Process(target=load_page, args=(url)) 
p.start() 
p.join 

Если вам нужно получить данные от процесса, вы должны смотреть в использовании очереди многопроцессорной.

Смежные вопросы