2015-07-24 10 views
5

Chcę zbudować przeszukiwacz, który pobiera adres URL strony, która ma zostać skradziona i zwraca wynik z powrotem na stronę. Teraz zaczynam scrapy od terminala i przechowuję odpowiedź w pliku. Jak mogę uruchomić przeszukiwacz, gdy niektóre dane wejściowe są wysyłane do Flask, przetwarzać i zwracać odpowiedź?Rozpocznij scrapy z trasy Flask

+0

Przepraszam, ta ostatnia linia jest trochę rozmyta. Co robisz z Flask? Jaki proces? I wróć odpowiedź z powrotem do miejsca? –

+0

Używam FLASK do odsłonięcia punktów końcowych, aby z aplikacji internetowej ktoś mógł opublikować dane wejściowe, np. Link strony internetowej, która ma zostać skradziona. Następnie chcę uruchomić pająk i przekazać to wejście i zwrócić odpowiedź przeszukiwacza z powrotem do aplikacji internetowej. – Ashish

+0

Właśnie odpowiedziałem na podobne pytanie tutaj: https://stackoverflow.com/questions/36384286/how-to-integrate-flask- scrapy –

Odpowiedz

4

Należy utworzyć CrawlerProcess wewnątrz aplikacji Flask i uruchomić programowo programowanie. Zobacz docs.

import scrapy 
from scrapy.crawler import CrawlerProcess 

class MySpider(scrapy.Spider): 
    # Your spider definition 
    ... 

process = CrawlerProcess({ 
    'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)' 
}) 

process.crawl(MySpider) 
process.start() # The script will block here until the crawl is finished 

Przed przejściem z Twojego projektu radzę zajrzeć do kolejki zadań Python (jak rq). Umożliwi to uruchamianie indeksowania Scrapy w tle, a aplikacja Flask nie zawiedzie się podczas działania skrobaków.

+0

Użyłem go pod scrapy. Czy podam fragment kodu, na którym działa pająk pod maską? – Vasim