我需要在此页面中获取所有答案,例如结构与作者姓名和答案文本。
https://answers.yahoo.com/question/index?qid=20151007080620AAVNtY1
如果我使用此代码
item = YahooItem()
text_to_gain = hxs.xpath('//a[contains(@class,"uname Clr- b")]/text()').extract()
if text_to_gain:
item['author']= str(text_to_gain[0]).strip()
else:
item['author']= "Anonymous"
item['type']="Answer"
text_to_gain = hxs.xpath('//span[contains(@class,"ya-q-full-text")][@itemprop="text"]/text()').extract()
if text_to_gain:
item['text']= str(text_to_gain[0]).strip()
else:
item['text']= "NULL"
yield item
我只拿一个元素。 我也尝试更改hxs或使用迭代器,例如:
all_answer = hxs.xpath('//li[contains(@class,"Cf Py-14 ya-other-answer Pend-14 ")]').extract()
但不起作用
答案 0 :(得分:0)
您可以通过以下表达式获得所有答案和相关作者。 此表达式选择页面上的所有答案,包括最佳答案
all_answers = hxs.xpath("descendant::*[@itemtype='https://schema.org/Answer']");
现在迭代每个答案answ
,并且以下xpath表达式(相对于每个answ
节点执行)将分别选择文本和作者
text = hxs.xpath(answ,"descendant::*[@itemprop='text']");
author = hxs.xpath(answ,"//a[starts-with(@class,'uname')]");