gpt4 book ai didi

python - 使用 Xpath 获取更多相同类型的元素

转载 作者:行者123 更新时间:2023-12-02 20:30:15 26 4
gpt4 key购买 nike

我需要获取此页面中的所有答案,例如作者姓名和答案文本的结构。

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()

但不起作用

最佳答案

您可以通过以下表达式获取所有答案和相关作者。该表达式选择页面上的所有答案,包括最佳答案

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')]");

关于python - 使用 Xpath 获取更多相同类型的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33060710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com