Ich brauche 2 Anfrage an verschiedenen URLs zu machen und diese Informationen an den gleichen Punkt setzen. Ich habe diese Methode versucht, aber das Ergebnis ist in verschiedenen Zeilen geschrieben. Die Rückrufe gibt Artikel zurück. Ich habe viele Methoden ausprobiert, aber keine scheint zu funktionieren.Scrapy mehr Anfragen und füllen einen Artikel
0
A
Antwort
3
Da scrapy asynchron ist, müssen Sie Ihre Anforderungen manuell verketten. Für Daten zwischen den Anfragen Übertragung können Sie Anfrage meta
Attribut:
def parse(self, response):
item = dict()
item['name'] = 'foobar'
yield request('http://someurl.com', self.parse2,
meta={'item': item})
def parse2(self, response):
print(response.meta['item'])
# {'name': 'foobar'}
In Ihrem Fall, dass Sie mit einer Split-Kette am Ende, wenn Sie eine fortlaufende Kette haben sollten.
Der Code sollte wie folgt aussehen:
def parse_companies(self, response):
data = json.loads(response.body)
if not data:
return
for company in data:
item = ThalamusItem()
comp_id = company["id"]
url = self.request_details_URL + str(comp_id) + ".json"
url2 = self.request_contacts + str(comp_id)
request = Request(url, callback=self.parse_details,
meta={'url2': url2, 'item': item})
yield request
def parse_details(self, response):
item = response.meta['item']
url2 = response.meta['url2']
item['details'] = '' # add details
yield Request(url2, callback=self.parse_contacts, meta={'item': item})
def parse_contacts(self, response):
item = response.meta['item']
item['contacts'] = '' # add details
yield item
Verwandte Themen
- 1. Scrapy Stapelüberlauf von Anfragen
- 2. Ausgabe während mehr als 1 Artikel in Mysql von Scrapy
- 3. scrapy ersten Artikel zurückgeben
- 4. Scrapy - Artikel speichern und neue URL analysieren
- 5. Nested JSON Artikel mit scrapy
- 6. Link Artikel hrefs in scrapy
- 7. kann nicht scrapy Artikel serialisiert
- 8. Python Scrapy, wie definiert man eine Pipeline für einen Artikel?
- 9. Scrapy Spider nicht Artikel Speicher freigeben
- 10. Crawl mehr Seiten mit Scrapy
- 11. ListView Control - mehr Artikel
- 12. Artikel Loader funktioniert nicht richtig in scrapy
- 13. Scrapy Shell und Scrapy Splash
- 14. wie man Artikel laden in scrapy Schleife
- 15. Scrapy Objekt nicht auf Anfrage Füllen
- 16. Clojure take-während und n mehr Artikel
- 17. Wie implementiert man verschachtelte Artikel in Scrapy?
- 18. Scrapy: Schrott Artikel aus HTML und nicht aus URL
- 19. Stoppen Sie Scrapy nach N Artikel geschabt
- 20. scrapy Fehler Import: Kein Modul Artikel
- 21. Empfehlung für mehr als einen zuletzt angesehenen Artikel
- 22. Python Anfragen füllen Form des Dropdown-Menüs
- 23. Bootstrap - Ausrichten mehr Artikel richtig
- 24. Schrott der Artikel mit Python 3.4 und BeautifulSoup, Anfragen
- 25. Python Scrapy Artikel als Header in CSV drucken
- 26. Scrapy gibt mehr Ergebnisse als erwartet
- 27. Scrapy funktioniert nicht mehr - Twisted time out
- 28. Scrapy Spider gibt keine zurück anstelle von Artikel
- 29. Anfragen Modul Rückkehr json mit Artikel ungeordnetem
- 30. Scrapy - Proxy-Middleware verwenden, aber Proxy für bestimmte Anfragen deaktivieren
Eine Frage, ich habe ein Problem, dass es Details Zunächst scheint es an den Kontaktinformationen kommt dann getan werden. Es endet damit, alles zu vermasseln. Die Kontaktinformationen sind überall und nicht dort, wo sie hingehören sollten. Der Code, den ich verwende, ist genau der gleiche, den Sie hier benutzen. –
@DainiusPreimantas hmm, es scheint ein Fehler in meinem Beispiel zu sein. Der Artikel sollte in __every__ loop erstellt werden, siehe meine Bearbeitung. Ansonsten passiert es, dass wir eine Referenz ändern und mit chaotischem Durcheinander enden. – Granitosaurus