Ich möchte die Artikel von this page kratzen. Die Elemente der Seite werden jedoch über Ajax geladen, wenn ich sie herunterscrolle. Bis jetzt habe ich versucht, die POST-Anfrage zu simulieren, die dies ohne Erfolg erreicht. Hier ist der Codeschnipsel, der mein Problem beschreibt.Probleme laden Webseite träge mit Scrapy
import scrapy
class eroskiSpider(scrapy.Spider):
name = "eroski"
allowed_domains = ['https://www.compraonline.com']
start_urls = [
'https://www.compraonline.grupoeroski.com/es/'
]
counter = 0
def parse(self, response):
for sel in response.xpath('//nav[@class="navmenu"]/ul/li/div/ul/li'):
cat_title = sel.xpath('a/@title')[0].extract()
href = sel.xpath('a/@href')[0].extract()
url = response.urljoin(href)
print 'Parsing category ' + cat_title
yield scrapy.Request(url, callback = self.parse_cat, dont_filter = True)
break
def parse_cat(self, response):
category = response.xpath('//head/title/text()').extract_first()
counter = 0
for sel in response.xpath('//article'):
counter = counter + 1
print 'counter is ' + str(counter)
description = sel.xpath('.//h2[contains(@class, "description_title")]/a/@title').extract_first()
print description
payload = {'pageNumber': '2', 't:zoneid': 'zoneScroll'}
yield scrapy.FormRequest(url = response.url, formdata = payload, dont_filter=True)
Wenn Sie den Code ausführen Sie sehen können, wie es für immer für die gleichen 20 Elemente Schleifen, die angezeigt werden, wenn die Seite zum ersten Mal geladen wird. Daher ist meine Absicht, weitere Artikel mit dem FormRequest zu laden, falsch. Irgendwelche Ideen, was falsch ist?
Welche Scrapy-Version verwenden Sie? – gerosalesc