XPath提取多个标签下的text

XPath提取多个标签下的text内容

网上搜到的基本都是这篇文章:

xpath一次提取多个标签下的内容

用的xpath string(.) 我试了一下,还是报错。不得已准备用迭代的方式取出内容。后来发现是selector.xpath('//xxxx')取出来的应该是集合,这个地方应该是写错误了,data要加上索引,即代码应该是:

   info = data[0].xpath('string(.)').extract()[0]

果然,修改后就得到了所有的文本内容。

再往文章上面看,作者写了一个tag:
tags: [xpath,Python,xml,scrapy]

是因为这仅仅是在scrapy下这样写的吗?正好这两天也在看scrapy,我就试着用scrapy抓取这段数据。

简书上的文章信息

发现仍是一样,xpath('xxx')取出的就是集合,下一次操作时要么使用迭代,要么加上索引操作。

XPath提取数据块(结构性数据)的技巧

选取点放在包含结构性数据循环的地方,即取决大的地方,再用xpath向内取数据。就是先抓大再抓小。

如爬取简书上文章的信息,第一次selector要定在ul class="article-list thumbnails" 的li,<li></li>中包含的就是一篇文章的信息。(注意li 的样式有两种 have-img 即有缩略图的)

文章列表html

articles = selector.xpath('//ul[@class="article-list thumbnails"]/li')

    for article in articles:
        title = article.xpath('div/h4/a/text()').extract()
        url = article.xpath('div/h4/a/@href').extract()
        author = article.xpath('div/p/a/text()').extract()



作者:向右奔跑
链接:https://www.jianshu.com/p/7041a7ba7fe0
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值