如何在 Scrapy 中使用 XPath 进行数据抽取?
使用 XPath 在 Scrapy 中进行数据抽取可以通过 response.xpath() 方法实现。
首先,我们需要在在 Scrapy 中定义一个 Spider,以便从网站中获取需要抽取的数据。假设我们要从 https://pidancode.com/ 网站中抽取文章标题和链接,可以通过如下代码实现:
import scrapy class PidanSpider(scrapy.Spider): name = 'pidan' allowed_domains = ['pidancode.com'] start_urls = ['https://pidancode.com/'] def parse(self, response): # 抽取文章标题和链接 titles = response.xpath('//h2[@class="post-title"]/a/text()') links = response.xpath('//h2[@class="post-title"]/a/@href') for title, link in zip(titles, links): yield { 'title': title.extract(), 'link': link.extract() }
在该 Spider 中,我们定义了 start_urls 为需要抽取数据的网站地址,然后在 parse() 方法中使用 response.xpath() 方法,传入 XPath 表达式来抽取数据。
在该例子中,我们使用了两个 XPath 表达式,分别是 '//h2[@class="post-title"]/a/text()' 和 '//h2[@class="post-title"]/a/@href'。前者用来抽取文章标题(文本内容),后者用来抽取文章链接。
最后,我们使用 yield 方法将抽取到的数据返回。在 Scrapy 中,使用 yield 返回的数据会被保存到文件或者数据库中。
可以通过执行 scrapy crawl pidan 命令来运行该 Spider,抽取数据并保存到文件中。
相关文章