首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xpath提取<\p>之间的内容

问使用xpath提取<\p>之间的内容
EN

Stack Overflow用户
提问于 2017-01-19 16:53:51
回答 1查看 117关注 0票数 0

我正试着从一个网站上摘取笑话,我需要一个接一个地得到笑话:

代码语言:javascript
复制
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的结果是

代码语言:javascript
复制
.xpath('//div[@class="oneliner"]')

这样我就可以提取单个条目,但是现在我想循环所有发生的事件并提取文本(在\p之间的所有内容)。为此我试过

代码语言:javascript
复制
for joke in jokes:

     item['joke'] = joke.xpath('//p/text()').extract()

但这给了我一次又一页的笑话,而不是一个接一个地看。有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-19 16:58:13

您可以简单地遍历笑话节点并在每次迭代中生成一个项:

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41747409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档