我试图从网站上提取笑话,我需要逐个开玩笑:
div class="oneliner"
itemscope=""
itemtype="http://schema.org/Article">
<p>My girl always tells me "Life is about the little things", but I just hate when she talks about her Ex.</p>
到目前为止,我使用xpath得出的是
.xpath('//div[@class="oneliner"]')
有了这个我能够提取单个项目,但现在我想循环所有出现并提取文本(\ p之间的所有内容)。为此我尝试了
for joke in jokes:
item['joke'] = joke.xpath('//p/text()').extract()
但这给了我那个页面的所有笑话,而不是一个接一个地进行。有人可以帮我这个吗?
答案 0 :(得分:1)
您可以简单地遍历笑话节点并在每次迭代时生成一个项目:
def parse(self, response):
jokes = response.xpath('//div[@class="oneliner"]')
for joke in jokes:
item = dict()
item['joke'] = joke.xpath('.//p/text()').extract()
yield item