scrapy框架之Selectors选择器
Selectors(选择器) 当您抓取网页时,您需要执行的最常见任务是从HTML源中提取数据。有几个库可以实现这一点: BeautifulSoup 是Python程序员中非常流行的网络抓取库,它基于HTML代码的结构构建一个Python对象,并且处理相当糟糕的标记,但它有一个缺点:它很慢。 lxml 是一个XML解析库(它还解析HTML)与基于 ElementTree 的pythonic API 。(lxml不是Python标准库的一部分。) Scrapy自带了提取数据的机制。它们称为选择器,因为它们“选择”由 XPath 或 CSS 表达式指定的HTML文档的某些部分。 XPath是用于选择XML文档中的节点的语言,其也可以与HTML一起使用。CSS是一种用于将样式应用于HTML文档的语言。它定义了选择器以将这些样式与特定的HTML元素相关联。 Scrapy选择器构建在lxml库之上,这意味着它们的速度和解析精度非常相似。 这个页面解释了选择器是如何工作的,并描述了他们的API是非常小和简单,不像lxml API是更大,因为 lxml库可以用于许多其他任务,除了选择标记文档。 构造选择器 Scrapy选择器是Selector通过传递文本或TextResponse 对象构造的类的实例。它根据输入类型自动选择最佳的解析规则(XML与HTML): >>> from scrapy