【问题标题】:How does Scrapy (Open Source Web Scraping Framework) works?Scrapy(开源 Web 抓取框架)如何工作?
【发布时间】:2019-05-26 01:51:39
【问题描述】:

引用自 Scrapy 官方文档:

Scrapy 有自己的数据提取机制。它们被称为选择器,因为它们“选择”由 XPath 或 CSS 表达式指定的 HTML 文档的某些部分。 Source

读完后,我仍然不确定 Scrapy 是否可以通过使用 XPath/CSS 表达式直接选择 HTML 文档的一部分或从浏览器呈现的 DOM 树中选择节点来工作?

DOM Parsing 和 HTML Parsing 到底是不是一样还是一头雾水……

【问题讨论】:

    标签: parsing dom web-scraping scrapy data-extraction


    【解决方案1】:

    读完后,我仍然不确定 Scrapy 是否可以通过使用 XPath/CSS 表达式直接选择 HTML 文档的一部分或从浏览器呈现的 DOM 树中选择节点来工作?

    肯定是前者,因为绝对不涉及浏览器。甚至“CSS”部分也只是 XPath 部分的语法糖——可以通过打印“进行中”Selector 来查看:

    >>> print(Selector(text="<html><div class='foo'></div></html>").css(".foo"))
    [<Selector xpath="descendant-or-self::*[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]" data='<div class="foo"></div>'>]
    

    DOM Parsing 和 HTML Parsing 到底是不是一样还是一头雾水……

    严格来说,我相信它们是不同的。例如,lxml 能够解析 HTML,但它以自己的方式进行解析,并实现了与xml.etree 兼容的对象树,而不是DOM 的对象树。有一个 minimal DOM libraryhtml5lib can target,这是您最接近“浏览器将构建的内容”的结果

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多