Ich benutze Scrapy zum Crawlen einer Webseite, die einen bestimmten Artikel enthält.Empty Div Return mit Xpath oder Css Selector mit Scrapy
Ich versuche, die Informationen im div mit der Klasse "return" gespeichert zu bekommen. Das große Problem, dass die Div-Rückgabe immer leer ist, wenn ich Scrapy Xpath oder Css-Selektoren verwende.
Das Div dass ich versuche, zu extrahieren:
<div class="return">
<p><strong>Conditionnement : </strong></p>
<p class="one-product-detail">2 colis :<br>
L178xl106xH80 72kg<br>L178xl112xH80 60kg<br>
<span itemprop="weight" alt="3fin" class="hidden" hidden="">132kg</span></p>
</div>
Meine Spinne Code:
import scrapy
from alinea.items import AlineaItem
class AlineaSpider(scrapy.Spider):
name = "alinea"
start_urls = [
"http://www.alinea.fr/",
]
def parse(self, response):
# ref = input("Enter Item Reference ?\n")
#50
# link = "http://www.alinea.fr/alinea_fredhopper/catalogSearch_result/products/search/" + str(ref)
link = "http://www.alinea.fr/alinea_fredhopper/catalogSearch_result/products/search/" + str(50)
print(link)
return scrapy.Request(link,
callback=self.parse_page2)
def parse_page2(self, response):
self.logger.info("Visited %s", response.url)
for sel in response.xpath('//li[contains(@itemprop,"title")]/text()'):
print("**************")
print("Description")
print(sel.extract())
print("**************")
# print("------------------------------------------------------------------")
#
# for sel in response.xpath('//*[@class="delivery"]'):
#
# print("**************")
# print("Details")
# print(sel.extract())
# print("**************")
print("------------------------------------------------------------------")
for sel in response.css('[class="return"]'):
print("**************")
print("Details")
print(sel.extract())
print("**************")
Mein Terminal-Log:
2016-07-28 12:57:21 [alinea] INFO: Visited http://www.alinea.fr/orca-canape-angle-gauche-droit-convertible-gris.html
**************
Description
Orca - Canapé CONVERTIBLE d'angle gauche ou droit gris
**************
------------------------------------------------------------------
**************
Details
<div class="return">
</div>
**************
Das 'div' ist in der HTML-Quelle leer. Es ist auch leer in meinem Chrome-Browser, bis Sie eine Option für das Produkt auswählen. Ich testete mit http://www.alinea.fr/orca-canape-angle-gauche-droit-convertible-gris.html. Die Daten, nach denen Sie suchen, werden höchstwahrscheinlich über JavaScript geladen. Scrapy selbst lädt nur HTML und nicht JavaScript. Sie müssen entweder den XHR-Aufruf reproduzieren oder ein JavaScript-Rendering-Tool wie Selenium oder Splash verwenden. –