Ich Schrott Nachrichten Website. Zu jeder Nachricht gibt es Inhalte und viele Kommentare. Ich habe 2 Artikel, einen für Inhalt und andere für mehrere Kommentare. Problem ist Inhalt und mehrere Kommentare ergeben als unterschiedliche Anfrage. Ich möchte, dass der Inhalt der Nachrichten und ihre Mehrfachkommentare zusammen oder als eins zurückgegeben werden. Pipeline Timing oder Reihenfolge ist mir egal.Scrapy Connect verschiedene Produkte für den Ertrag
In Artikel Datei:
class NewsPageItem(scrapy.Item):
title = scrapy.Field()
date = scrapy.Field()
hour = scrapy.Field()
image = scrapy.Field()
image_url = scrapy.Field()
top_content = scrapy.Field()
parag = scrapy.Field()
#comments = scrapy.Field()
comments_count = scrapy.Field()
class CommentsItem(scrapy.Item):
id_ = scrapy.Field()
username = scrapy.Field()
firstname = scrapy.Field()
lastname = scrapy.Field()
email = scrapy.Field()
ip = scrapy.Field()
userid = scrapy.Field()
date = scrapy.Field()
comment_text = scrapy.Field()
comment_type_id = scrapy.Field()
object_id = scrapy.Field()
yes = scrapy.Field()
no = scrapy.Field()
In Spinne, Nachrichten Inhalt und seine vielen Kommentare sind nicht verbunden:
class NewsSpider(scrapy.Spider):
...
def parse(self, response):
for nl in news_links:
yield scrapy.Request(url=nl, callback=self.new_parse)
yield scrapy.Request(url=url, callback=self.comment_parse)
def new_parse(self,response):
item = BigParaItem()
item['title'] = response.xpath(...).extract()
...
yield item
def comment_parse(self,response):
data = json.loads(response.body.decode('utf8'))
for comment in data.get('data', []):
item = CommentsItem()
item['id_'] = comment.get('Id')
...
yield item
Pipelines:
class NewsPagePipeline(object):
def process_item(self, item, spider):
return item
class CommentsPipeline(object):
def process_item(self, item, spider):
return item
Wie kann ich Elemente verbinden oder verschachtelt werden, wenn die Ausbeute?
, es funktionierte perfekt :)) –