Example #1
0
    def process(self, crawler, request):
        future = asyncio.Future()
        ensure_future(self._fetch(request, future))

        planned = Planned()

        def build_response(f):
            planned.set_result(f.result())
        future.add_done_callback(build_response)

        return planned
Example #2
0
    def process(self, crawler, request):
        future = asyncio.Future()
        ensure_future(self._fetch(request, future))

        planned = Planned()

        def build_response(f):
            planned.set_result(f.result())

        future.add_done_callback(build_response)

        return planned
    def get(self, requests):
        for request in requests:

            future = asyncio.Future()
            ensure_future(self._fetch(request, future))

            planned = Planned()

            def build_response(f):
                planned.set_result(f.result())
            future.add_done_callback(build_response)

            yield planned
    def test_asyncio_engine(self):
        req_resp_midlleware = RequestResponseMiddleware(
            prefix_url=self.httpd.location,
            request_factory=lambda x: x,
        )

        collect_middleware = CollectRequestResponseMiddleware()

        downloader = AiohttpDownloader(
            middlewares=[AiohttpAdapterMiddleware(), collect_middleware]
        )

        downloader.middlewares.insert(0, req_resp_midlleware)

        pomp = AioPomp(
            downloader=downloader,
            pipelines=[],
        )

        class Crawler(DummyCrawler):
            ENTRY_REQUESTS = '/root'

        loop = asyncio.get_event_loop()
        loop.run_until_complete(ensure_future(pomp.pump(Crawler())))
        loop.close()

        assert_set_equal(
            set([r.url.replace(self.httpd.location, '')
                for r in collect_middleware.requests]),
            set(self.httpd.sitemap.keys())
        )
Example #5
0
 def process(self, crawler, request):
     return ensure_future(self._fetch(request))
Example #6
0
 def process(self, crawler, request):
     return ensure_future(self._fetch(request))