2016-06-16 37 views
5

dire che mi auguro per raschiare i prodotti su questo page (http://shop.coles.com.au/online/national/bread-bakery/fresh/bread#pageNumber=2&currentPageSize=20)web raschiando una pagina web che ha contenuti dinamici caricati tramite la tecnologia AJAX

Ma i prodotti viene caricato da una richiesta post. Molti post suggeriscono di simulare una richiesta per ottenere contenuti dinamici, ma nel mio caso lo Form Data è sconosciuto per me, ovvero catalogId, categoryId.

Mi chiedo se è possibile ottenere il response dopo che la chiamata ajax è terminata?

risposta

2

è possibile ottenere gli altri valori catalogId e dei parametri necessari per effettuare la richiesta POST dal form con id="search":

<form id="search" name="search" action="http://shop.coles.com.au/online/SearchDisplay?pageView=image&amp;catalogId=10576&amp;beginIndex=0&amp;langId=-1&amp;storeId=10601" method="get" role="search"> 
    <input type="hidden" name="storeId" value="10601" id="WC_CachedHeaderDisplay_FormInput_storeId_In_CatalogSearchForm_1"> 
    <input type="hidden" name="catalogId" value="10576" id="WC_CachedHeaderDisplay_FormInput_catalogId_In_CatalogSearchForm_1"> 
    <input type="hidden" name="langId" value="-1" id="WC_CachedHeaderDisplay_FormInput_langId_In_CatalogSearchForm_1"> 
    <input type="hidden" name="beginIndex" value="0" id="WC_CachedHeaderDisplay_FormInput_beginIndex_In_CatalogSearchForm_1"> 
    <input type="hidden" name="browseView" value="false" id="WC_CachedHeaderDisplay_FormInput_browseView_In_CatalogSearchForm_1"> 
    <input type="hidden" name="searchSource" value="Q" id="WC_CachedHeaderDisplay_FormInput_searchSource_In_CatalogSearchForm_1"> 
    ... 
</form> 

Utilizzare la FormRequest per inviare questo modulo.


mi chiedo è possibile ottenere la risposta dopo la chiamata AJAX è finito?

Scrapy non è un browser: non esegue ulteriori richieste AJAX per caricare la pagina e non c'è nulla di integrato per eseguire JavaScript. È possibile esaminare l'utilizzo di un browser reale e risolverlo a un livello superiore: esaminare selenium package. C'è anche il relativo progetto scrapy-splash.

Consulta anche: