как интегрировать пауков и scrapy-ctl.py

Я новичок в python и scrapy, и поэтому у меня возникают некоторые основные сомнения (пожалуйста, избавьте меня от невежества в отношении некоторых основ, которые я хочу изучить: D).

Прямо сейчас я пишу несколько пауков и реализую их с помощью scrapy-ctl.py из командной строки, набрав:

C:\Python26\dmoz>python scrapy-ctl.py crawl spider

Но я не хочу, чтобы два отдельных кода Python и командная строка реализовывали это. Я хочу каким-то образом определить паука и заставить его сканировать URL-адреса, написав и запустив один код Python. Я мог заметить, что в файле scrapy-ctl.py , импортируется «выполнение» типа функция, но я не знаю, как эта функция может быть определена в коде, содержащем паука. Может ли кто-нибудь объяснить мне, как это сделать, если это возможно, потому что это сильно сокращает работу.

Заранее спасибо!!


person silentNinJa    schedule 28.06.2010    source источник


Ответы (1)


Но я не хочу, чтобы два отдельных кода Python и командная строка реализовывали это. Я хочу каким-то образом определить паука и заставить его сканировать URL-адреса, написав и запустив один код Python.

Я не уверен, что усилия окупятся, если вы просто хотите что-то поцарапать. У вас есть как минимум два варианта:

  • Покопайтесь в scrapy/cmdline.py. Вы увидите, что это своего рода диспетчерский сценарий, в конце концов передающий работу методу run для указанной команды, здесь crawlscrapy/commands/crawl.py). Посмотрите на строку 54, я думаю, что scrapymanager.start() начнет вашу фактическую команду после некоторой настройки.

  • Немного хакерский метод: используйте модуль pythons subprocess, чтобы иметь один ваш проект и выполнение в одном файл (или проект).

person miku    schedule 28.06.2010
comment
извините за задержку с ответом.... я использую модуль подпроцесса, и он работает gr8... спасибо за вашу помощь..:) - person silentNinJa; 05.07.2010