Wie analysiere ich mit Scrapy Daten zu gleichen Artikel von mehreren Links auf der gleichen Seite? Ich versuche nicht, Daten von nur einen Link von einer Unterseite zu retten, aber etwas equivalente zu this Beispiel, aber mit dem Unterschied, dass ich mehr als einen Link von der gleichen Seite folgen mag:Scrapy Daten im selben Artikel von mehreren Link auf der gleichen Seite?
A
----> B.1
--------> B.1.1
----> B.2
--------> B.2.2
Zusammengefasst Ich möchte verschiedene Arten von Daten in demselben Element von der Stammseite A, B.1, B.1.1, B.2 und B.2.2 speichern. Kann mir jemand ein Spielzeugbeispiel geben?
EDIt:
Bild den folgenden Code:
class MySpider(BaseSpider):
start_urls = [www.pageA.com]
def parse(self, response):
myitem = Item()
# some initial data
item['a'] = response.xpath(...).extract()
# extract all B.i links
url_Bi_list = response.xpath(...).extract()
for url_Bi in url_Bi_list:
yield Request(url_Bi,
...
callback=parseBi,meta=dict(item=myitem))
def parseBi(self, response):
my_new_item = response.meta['item']
# some second data
item['bi'] = response.xpath(...).extract()
# extract B.i.i link
url_Bii = response.xpath(...).extract()
yield Request(url_Bii,
...
callback=parseBii,meta=dict(item=my_new_item))
def parseBii(self, response):
final_item = response.meta['item']
# extract more data from B.i.i link
# some third inner data
my_new_item['bii'] = response.xpath(...).extract()
yield final_item
So wird dieser Code-Struktur arbeiten? Ich bin nicht sicher, wenn Artikel oder Anfrage zu erhalten ...
nicht sicher, ob ich verstehe. Wenn der ParseB aufgerufen wird, könnte die eine unbekannte sein. –
Miguel
teilen Sie Code, wenn Sie möchten, dass ich Ihren Fall verstehe. über eine Methode, die eine URL zum Parsen weiß oder nicht, wie wirkt sich das auf das Element aus? – eLRuLL
Ok, ich habe gerade ein Beispiel für einen Code geschrieben, den ich versucht habe. Aber die Ergebnisse waren nicht gut. Die letzten Item-Dictionary Ergebnisse sind eine Reihe von gemischten Daten – Miguel