对于初学者的问题我很抱歉,但这让我发疯了:
想象一下,我将这个选择器放到一组span元素中:
ori=response.xpath("//div[@class='comparison-
row']//div[contains(@class,'modern-
translation')]//span[contains(@class,'line-mapping')]")
我需要提取2个属性,即数据ID和每个范围的文本
我做:
for r in ori:
id_n=r.xpath("@data-id").extract()
text_n=r.xpath("/text()").extract()
if len(id_n)!=0 and len(text_n)!=0:
ids.append(id_n)
text.append(text_n)
但是以下内容会返回错误:
text_n=r.xpath("/text()").extract()
我试过了:
for r in ori:
n=r.extract()
print(n)
我有这个输出:
我将待在家里,为你的尝试祈求上帝的祝福。 明天离开,并确保这一点:我可以帮助你的任何事情,你应该有。
我需要提取每个文本
答案 0 :(得分:1)
您需要相对于当前元素创建xpath表达式:
text_n = r.xpath("./text()").extract()
另外,if len(id_n)!=0 and len(text_n)!=0:
最好写成if id_n and text_n: