Я использую SQL Server 2016 и Window 10.
Прежде всего, нужно разрешить удаленное подключение к SQL Сервер. Я сделал, чтобы ввести sqlservermanager13.msc в меню «Пуск», чтобы открыть диспетчер конфигурации SQL Server. Убедитесь, что статус TCP / IP включен.
Проверьте номер своего TCP-порта, дважды щелкнув имя протокола TCP / IP. Обычно это по умолчанию 1433.
Следующие процедуры настраивают брандмауэр Windows с помощью оснастки «Брандмауэр Windows с расширенной безопасностью» Microsoft Management Console (MMC) -в. Брандмауэр Windows с расширенной безопасностью настраивает только текущий профиль.
Чтобы открыть порт в брандмауэре Windows для доступа к TCP
- В меню «Пуск» выберите «Выполнить», введите WF.msc и нажмите «ОК».
- В брандмауэре Windows с расширенной безопасностью на левой панели щелкните правой кнопкой мыши Правила входящих сообщений и выберите «Новое правило» на панели действий.
- В диалоговом окне «Тип правила» выберите Порт, а затем нажмите «Далее».
- В диалоговом окне «Протокол и порты» выберите TCP. Выберите «Определенные локальные порты», а затем введите номер порта экземпляра Database Engine, например 1433 для экземпляра по умолчанию. Нажмите «Далее».
- В диалоговом окне «Действие» выберите «Разрешить подключение» и нажмите «Далее».
- В диалоговом окне «Профиль» выберите любые профили, описывающие среду подключения к компьютеру, когда вы хотите подключиться к механизму базы данных, а затем нажмите «Далее».
- В диалоговом окне «Имя» введите имя и описание этого правила и нажмите «Готово».
Еще одна вещь, которую нужно настроить.
Чтобы открыть доступ к SQL Server при использовании динамических портов
- В меню «Пуск» выберите «Выполнить», введите «WF» .msc, а затем нажмите «ОК».
- В брандмауэре Windows с расширенной безопасностью на левой панели щелкните правой кнопкой мыши «Правила входящих» и выберите «Новое правило» на панели действий.
- В диалоговом окне «Тип правила» выберите «Программа» и нажмите «Далее».
- В диалоговом окне «Программа» выберите «Путь к этой программе». Нажмите «Обзор» и перейдите к экземпляру SQL Server, к которому вы хотите получить доступ через брандмауэр, и нажмите «Открыть». По умолчанию SQL Server находится в папке C: \ Program Files \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ Binn \ Sqlservr.exe. Нажмите «Далее».
- В диалоговом окне «Действие» выберите «Разрешить подключение» и нажмите «Далее».
- В диалоговом окне «Профиль» выберите все профили, описывающие среду подключения к компьютеру, когда вы хотите подключиться к движку базы данных и нажмите «Далее».
- В диалоговом окне «Имя» введите имя и описание этого правила и нажмите «Готово».
Взгляните на Microsoft doucmentation Настройте брандмауэр Windows для доступа к базе данных
Я лично рекомендую начинать новый паук каждый раз, когда вам нужно что-то сканировать, но если вы хотите сохранить этот процесс в живых, я бы рекомендовал использовать сигнал spider_idle
:
@classmethod
def from_crawler(cls, crawler, *args, **kwargs):
spider = super(MySpider, cls).from_crawler(crawler, *args, **kwargs)
crawler.signals.connect(spider.spider_closed, signals.spider_closed)
crawler.signals.connect(spider.spider_idle, signals.spider_idle)
return spider
...
def spider_idle(self, spider):
# read database again and send new requests
# check that sending new requests here is different
self.crawler.engine.crawl(
Request(
new_url,
callback=self.parse),
spider
)
Здесь вы отправляете новые запросы до того, как паук действительно закроется.
raise DontCloseSpider
и конецmy spider_idle
, и мой паук теперь работает навсегда. Однако кажется, что он только считывает url из базы данных один раз, но я вижу, как мой регистратор продолжает говорить «я жив». – RogerFromSpace 4 January 2017 в 10:15"I'm alive"
журнал? – eLRuLL 4 January 2017 в 16:15