So habe ich es geschafft, eine Spinne zu schreiben, die die Download-Links von "Videos" und "Englisch Transkripte" aus dieser site extrahiert. Wenn ich auf das cmd-Fenster schaue, kann ich sehen, dass alle korrekten Informationen abgekratzt wurden.Python Scrapy - erste Elemente und Elemente aus dem Rückruf an CSV
Das Problem, das ich habe, ist, dass die Ausgabe CSV-Datei enthält nur die "Video" -Links und nicht die "Englisch Transkripte" Links (obwohl Sie sehen können, dass es im Cmd-Fenster geschabt wurde).
Ich habe ein paar Vorschläge aus anderen Posts versucht, aber keiner von ihnen scheint zu funktionieren.
Das folgende Bild ist, wie ich die Ausgabe so aussehen möchte: CSV Output Picture
dies ist mein aktuelle Spinne Code:
import scrapy
class SuhbaSpider(scrapy.Spider):
name = "suhba2"
start_urls = ["http://saltanat.org/videos.php?topic=SheikhBahauddin&gopage={numb}".format(numb=numb)
for numb in range(1,3)]
def parse(self, response):
yield{
"video" : response.xpath("//span[@class='download make-cursor']/a/@href").extract(),
}
fullvideoid = response.xpath("//span[@class='media-info make-cursor']/@onclick").extract()
for videoid in fullvideoid:
url = ("http://saltanat.org/ajax_transcription.php?vid=" + videoid[21:-2])
yield scrapy.Request(url, callback=self.parse_transcript)
def parse_transcript(self, response):
yield{
"transcript" : response.xpath("//a[contains(@href,'english')]/@href").extract(),
}
Mögliche Duplikat [Scrapy CSV-Ausgabe "zufällig" fehlenden Felder] (https://stackoverflow.com/questions/41917108/scrapy-csv-output-randomly-missing -fields) –