Python爬虫框架Scrapy的选择器用法介绍
发布时间:2023-12-12 07:20:31
Scrapy是一个强大的Python爬虫框架,其中选择器是用于提取HTML或XML文档中的数据的工具。Scrapy提供了两种选择器:基于XPath的Selector和基于CSS选择器的Selector。
1. 基于XPath的Selector用法:
XPath(XML路径语言)是一种用于定位和运算节点的语言,可以用于选择或提取XML或HTML文档中的元素。Scrapy提供了基于XPath语法的Selector,以下是一些常见的用法示例:
(1)使用XPath选择器提取元素文本内容:
from scrapy.selector import Selector
html = """
<html>
<body>
<div class="content">
<h1>Hello, World!</h1>
</div>
</body>
</html>
"""
selector = Selector(text=html)
text = selector.xpath('//h1/text()').get()
print(text) # 输出:"Hello, World!"
(2)使用XPath选择器提取元素属性值:
from scrapy.selector import Selector
html = """
<html>
<body>
<a href="https://example.com">Click here</a>
</body>
</html>
"""
selector = Selector(text=html)
href = selector.xpath('//a/@href').get()
print(href) # 输出:"https://example.com"
(3)使用XPath选择器提取多个元素:
from scrapy.selector import Selector
html = """
<html>
<body>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</body>
</html>
"""
selector = Selector(text=html)
items = selector.xpath('//li/text()').getall()
print(items) # 输出:["Item 1", "Item 2", "Item 3"]
2. 基于CSS选择器的Selector用法:
CSS选择器是一种用于选择HTML元素的语法,类似于XPath,也可以用于提取HTML文档中的数据。Scrapy提供了基于CSS选择器语法的Selector,以下是一些常见的用法示例:
(1)使用CSS选择器提取元素文本内容:
from scrapy.selector import Selector
html = """
<html>
<body>
<div class="content">
<h1>Hello, World!</h1>
</div>
</body>
</html>
"""
selector = Selector(text=html)
text = selector.css('h1::text').get()
print(text) # 输出:"Hello, World!"
(2)使用CSS选择器提取元素属性值:
from scrapy.selector import Selector
html = """
<html>
<body>
<a href="https://example.com">Click here</a>
</body>
</html>
"""
selector = Selector(text=html)
href = selector.css('a::attr(href)').get()
print(href) # 输出:"https://example.com"
(3)使用CSS选择器提取多个元素:
from scrapy.selector import Selector
html = """
<html>
<body>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</body>
</html>
"""
selector = Selector(text=html)
items = selector.css('li::text').getall()
print(items) # 输出:["Item 1", "Item 2", "Item 3"]
以上是Scrapy框架中选择器的用法介绍和示例。选择器是Scrapy中用于提取HTML或XML文档中数据的重要工具,掌握选择器的用法可以帮助我们更轻松地提取目标数据。
