2015-09-13 2 views
0

Я пытаюсь запустить Scrapy или Portia в веб-приложении Microsoft Azure. Я установил Scrapy путем создания виртуальной среды:Как запустить Scrapy/Portia на Azure Web App

D:\Python27\Scripts\virtualenv.exe D:\home\Python 

А потом установил Scrapy:

D:\home\Python\Scripts\pip install Scrapy 

установка, казалось, работало. Но выполнение паук возвращает следующий результат:

D:\home\Python\Scripts\tutorial>d:\home\python\scripts\scrapy.exe crawl example 2015-09-13 23:09:31 [scrapy] INFO: Scrapy 1.0.3 started (bot: tutorial) 

2015-09-13 23:09:31 [scrapy] INFO: Optional features available: ssl, http11 

2015-09-13 23:09:31 [scrapy] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'tutorial.spiders', 'SPIDER_MODULES': ['tutorial.spiders'], 'BOT_NAME': 'tutorial'} 

2015-09-13 23:09:34 [scrapy] INFO: Enabled extensions: CloseSpider, TelnetConsole, LogStats, CoreStats, SpiderState 

Unhandled error in Deferred: 

2015-09-13 23:09:35 [twisted] CRITICAL: Unhandled error in Deferred: 

Traceback (most recent call last): 

    File "D:\home\Python\lib\site-packages\scrapy\cmdline.py", line 150, in _run_command 

    cmd.run(args, opts) 

    File "D:\home\Python\lib\site-packages\scrapy\commands\crawl.py", line 57, in run 

    self.crawler_process.crawl(spname, **opts.spargs) 

    File "D:\home\Python\lib\site-packages\scrapy\crawler.py", line 153, in crawl 

    d = crawler.crawl(*args, **kwargs) 

    File "D:\home\Python\lib\site-packages\twisted\internet\defer.py", line 1274, in unwindGenerator 

    return _inlineCallbacks(None, gen, Deferred()) 

--- <exception caught here> --- 

    File "D:\home\Python\lib\site-packages\twisted\internet\defer.py", line 1128, in _inlineCallbacks 

    result = g.send(result) 

    File "D:\home\Python\lib\site-packages\scrapy\crawler.py", line 71, in crawl 

    self.engine = self._create_engine() 

    File "D:\home\Python\lib\site-packages\scrapy\crawler.py", line 83, in _create_engine 

    return ExecutionEngine(self, lambda _: self.stop()) 

    File "D:\home\Python\lib\site-packages\scrapy\core\engine.py", line 66, in __init__ 

    self.downloader = downloader_cls(crawler) 

    File "D:\home\Python\lib\site-packages\scrapy\core\downloader\__init__.py", line 65, in __init__ 

    self.handlers = DownloadHandlers(crawler) 

    File "D:\home\Python\lib\site-packages\scrapy\core\downloader\handlers\__init__.py", line 23, in __init__ 

    cls = load_object(clspath) 

    File "D:\home\Python\lib\site-packages\scrapy\utils\misc.py", line 44, in load_object 

    mod = import_module(module) 

    File "D:\Python27\Lib\importlib\__init__.py", line 37, in import_module 

    __import__(name) 

    File "D:\home\Python\lib\site-packages\scrapy\core\downloader\handlers\s3.py", line 6, in <module> 

    from .http import HTTPDownloadHandler 

    File "D:\home\Python\lib\site-packages\scrapy\core\downloader\handlers\http.py", line 5, in <module> 

    from .http11 import HTTP11DownloadHandler as HTTPDownloadHandler 

    File "D:\home\Python\lib\site-packages\scrapy\core\downloader\handlers\http11.py", line 15, in <module> 

    from scrapy.xlib.tx import Agent, ProxyAgent, ResponseDone, \ 

    File "D:\home\Python\lib\site-packages\scrapy\xlib\tx\__init__.py", line 3, in <module> 

    from twisted.web import client 

    File "D:\home\Python\lib\site-packages\twisted\web\client.py", line 42, in <module> 

    from twisted.internet.endpoints import TCP4ClientEndpoint, SSL4ClientEndpoint 

    File "D:\home\Python\lib\site-packages\twisted\internet\endpoints.py", line 34, in <module> 

    from twisted.internet.stdio import StandardIO, PipeAddress 

    File "D:\home\Python\lib\site-packages\twisted\internet\stdio.py", line 30, in <module> 

    from twisted.internet import _win32stdio 

    File "D:\home\Python\lib\site-packages\twisted\internet\_win32stdio.py", line 7, in <module> 

    import win32api 

exceptions.ImportError: No module named win32api 



2015-09-13 23:09:35 [twisted] CRITICAL: 

документация http://doc.scrapy.org/en/latest/intro/install.html говорит, что я должен установить pywin32. Я не знаю, как я могу загрузить/установить его через командную строку, так как я в среде веб-приложения.

Возможно ли запустить Scrapy или Portia в приложении Azure Web или использовать полностью полноценную виртуальную машину на Azure?

Спасибо!

+0

Обратите внимание, что вы можете запустить свой паук из [Scrapy Cloud] (http://scrapinghub.com) (есть свободный план и отказ от ответственности: работает там). Затем вы можете использовать API или прямой дамп для получения ваших данных. –

ответ

2

Вы не можете запускать приложения общего назначения Windows «на» Azure Web App. Вещи, которые работают на Azure в качестве веб-приложений, должны быть созданы специально для этого. Итак, вы должны использовать полнофункциональную виртуальную машину на Azure.

кажется Azure Webapps может запускать несколько приложений на Python, если они построены на определенных рамках: https://azure.microsoft.com/en-us/documentation/articles/web-sites-python-configure/