我已经使用scrapy从网页获取数据。我遇到了如下问题。如何获得与Scrapy的完整链接文本
<li>
<a href="NEW-IMAGE?type=GENE&object=EG10567">
<b>
man
</b>
X -
<i>
Escherichia coli
</i>
</a>
<br>
</li>
我想要得到的内容(例如:人X-大肠杆菌)在<a>
标记,不想获取其他标签。这里是我的代码:
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
我试图给的unicode转换为UTF-8,但结果仍然是这样的:
{"Link": ["NEW-IMAGE?type=GENE&object=EG10567"], "Name": "[u'X -']"}
有时也会有一些字符在记录中缺失。 所以我想知道如何从HTML代码中获得完整和正确的格式数据。
的Unicode转换为UTF-8并没有太大的意义; UTF-8 *是* Unicode。你的结果与HTML不匹配,你能展示结果所指的真实HTML吗? – JJJ
对不起,这个是正确的** {“Link”:[“NEW-IMAGE?type = GENE&object = EG10567”],“Name”:“[u'X - ']”},**,你可以看到它的名称不完整 –
我会为你编辑问题;尽量确保所有数据都是相关的。 Unicode与此无关。 – JJJ