【问题标题】:How to loop through HTML to get data in order with scrapy?如何使用scrapy循环遍历HTML以按顺序获取数据?
【发布时间】:2021-02-15 23:46:41
【问题描述】:

例如,我有一个这样的 HTML:

<div id="des">
    <p>One</p>
    <p>Second</p>
    <img src="firstimage" alt="">
    <p>Third</p>
    <img src="secondimage" alt="">
    <p>Fourth</p>
</div>

我可以使用这一行来获取所有 p 文本:

des = response.css("#des p::text").getall()

或图像相同。

但是我想要的是我将有一个数据数组(p 的文本和 img 的 src),例如在 HTML 页面中排序:

["one", "second", "firstimage", "third", "secondimage", "fourth"]

我知道有一些项目可以帮助我,但不知道如何实现这一点。有没有一种方法可以让我在div id="des" 中循环并以有序的方式获取数据?

【问题讨论】:

    标签: python web-scraping scrapy web-crawler


    【解决方案1】:

    您可以在一个查询中使用两个选择器,它们将按出现的顺序提取。

    response.css("#des p::text, #des img::attr(src)").extract()
    #['One', 'Second', 'firstimage', 'Third', 'secondimage', 'Fourth']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      • 2015-06-07
      • 1970-01-01
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多