Ich habe Scrapy verwenden, um Daten von der Webseite zu erhalten. Und ich stieß auf ein Problem wie unten.So erhalten Sie den vollständigen Linktext mit Scrapy
<li>
<a href="NEW-IMAGE?type=GENE&object=EG10567">
<b>
man
</b>
X -
<i>
Escherichia coli
</i>
</a>
<br>
</li>
In Webseite, sieht der Datensatz Namen wie folgt aus:
ich den Inhalt erhalten möchten (zB: Mann X-Escherichia coli) im <a>
Tag und wollen nicht Erhalte andere Tags. Und hier ist mein Code:
def parse(self, response):
sel = Selector(response)
sites = sel.xpath('//ul/li/a[contains(@href,"NEW-IMAGE")]')
base_url = "http://www.metacyc.org/META"
for site in sites:
item = MetaCyc()
name_tmp = map(unicode.strip, site.xpath('text()').extract())
item['Name'] = unicode(name_tmp).encode('utf-8')
item['Link'] = map(unicode.strip, site.xpath('@href').extract())
yield item
ich versucht habe, die Unicode zu utf-8, zu konvertieren, aber die Ergebnisse sieht immer noch wie folgt aus:
{"Link": ["NEW-IMAGE?type=GENE&object=EG10567"], "Name": "[u'X -']"}
Manchmal wird es einige Zeichen haben fehlt in den Aufzeichnungen. Also ich möchte wissen, wie man die vollständigen und korrekten Formatdaten vom HTML-Code erhält.
Konvertieren von Unicode in UTF-8 nicht viel Sinn machen; UTF-8 * ist * Unicode. Ihr Ergebnis stimmt nicht mit dem HTML-Code überein. Können Sie den tatsächlichen HTML-Code angeben, auf den sich das Ergebnis bezieht? – JJJ
Entschuldigung, dieser ist korrekt ** {"Link": ["NEW-IMAGE? Type = GENE & object = EG10567"], "Name": "[u'X - ']"}, **, können Sie die sehen Name ist nicht vollständig –
Ich werde die Frage für Sie bearbeiten; versuchen Sie sicherzustellen, dass alle Daten relevant sind. Unicode hat damit nichts zu tun. – JJJ