Desidero creare un crawler che preleva l'URL di una pagina Web e restituisce il risultato a una pagina Web. In questo momento comincio a scricchiolare dal terminale e memorizzo la risposta in un file. Come posso avviare il crawler quando qualche input è pubblicato su Flask, elaborare e restituire una risposta?Inizio scrapy dal percorso Flask
5
A
risposta
4
È necessario creare un CrawlerProcess all'interno dell'applicazione Flask ed eseguire la ricerca per indicizzazione a livello di codice. Vedi lo 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
Prima di passare con il vostro progetto vi consiglio di guardare in una coda compito Python (come rq). Ciò ti consentirà di eseguire Scrapy crawl in background e l'applicazione Flask non si bloccherà mentre sono in esecuzione gli scrap.
+0
L'ho usato sotto scrapy. Vi preghiamo di fornire qualche frammento di codice, che è in esecuzione spider sotto l'applicazione del pallone ???? – Vasim
Siamo spiacenti, l'ultima riga è un po 'sfocata. Cosa stai facendo con Flask? Quale processo? E restituire la risposta a dove? –
Sto utilizzando FLASK per esporre gli endpoint, in modo che da un'app Web qualcuno possa pubblicare un input, ovvero il link della pagina web da rimuovere. Quindi, voglio avviare lo spider e passare quell'input e restituire la risposta del crawler all'app web. – Ashish
Ho appena risposto a una domanda simile qui: https://stackoverflow.com/questions/36384286/how-to-integrate-flask-scrapy –