Warum gibt mein Scrapy-Code ein leeres Array zurück?

Ich baue einen Web-Scraper für wunderground.com, aber ich mein Code gibt den Wert von "[]" für inches_rain und Feuchtigkeit zurück. Könnte jemand sehen, warum dies geschieht?

# -*- coding: utf-8 -*- import scrapy from scrapy.selector import Selector import time from wunderground_scraper.items import WundergroundScraperItem class WundergroundComSpider(scrapy.Spider): name = "wunderground" allowed_domains = ["www.wunderground.com"] start_urls = ( 'http://www.wunderground.com/q/zmw:10001.5.99999', ) def parse(self, response): info_set = Selector(response).xpath('//div[@id="current"]') list = [] for i in info_set: item = WundergroundScraperItem() item['description'] = i.xpath('div/div/div/div/span/text()').extract() item['description'] = item['description'][0] item['humidity'] = i.xpath('div/table/tbody/tr/td/span/span/text()').extract() item['inches_rain'] = i.xpath('div/table/tbody/tr/td/span/span/text()').extract() list.append(item) return list 

Ich weiß auch, dass die Feuchtigkeit und Inches_rain Elemente auf den gleichen xpath gesetzt sind, aber das sollte richtig sein, denn sobald die Information in einem Array ist, setze ich sie einfach auf bestimmte Werte aus dem Array.

One Solution collect form web for “Warum gibt mein Scrapy-Code ein leeres Array zurück?”

Lassen Sie mich vorschlagen, eine zuverlässigere und lesbare XPath zu finden, um ein Beispiel, "Feuchtigkeit" -Wert, wo die Basis ist, dass "Feuchtigkeit" Spalte Label:

 "".join(i.xpath('.//td[dfn="Humidity"]/following-sibling::td//text()').extract()).strip() 

Ausgänge jetzt 45%.


FYI, dein XPath hatte mindestens ein Problem – das tbody Tag – entferne es aus dem XPath Ausdruck.

  • Python-Skript, um alle Kommentare aus XML-Datei zu entfernen
  • Python-xpath-Abfrage, die keinen Textwert zurückgibt
  • Wie bekomme ich XPath 'kein' in Python, wenn keine Daten gefunden wurden?
  • Wortbrüche in Text-Extraktion, Lxml Xpath
  • Python, lxml und xpath - html Tabellenanalyse
  • Wie verwende ich leere Namespaces in einer lxml xpath-Abfrage?
  • XPath-Prädikat mit Sub-Pfaden mit lxml?
  • Wie kann ich HTML mit html5lib analysieren und das geparste HTML mit XPath abfragen?
  • Volltextsuche XML-Daten mit Python: Best Practices, Pros & Contras
  • Wie lxml xpath-Funktionen in den Standard-Namespace importieren?
  • Wie richte ich XPath-Abfrage für HTML-Parsing ein?
  • Python ist die beste Programmiersprache der Welt.