【发布时间】:2019-01-22 21:10:36
【问题描述】:
我想在 Scrapy 项目中将 CSS 选择器转换为 XPath。
我正在从它的网站教程中学习 Scrapy,但我在将 CSS 语言直接翻译成 XPath 时遇到了麻烦。
用来解析http://quotes.toscrape.com/的CSS选择器是:
`>>> for quote in response.css("div.quote"):
... text = quote.css("span.text::text").extract_first()
... author = quote.css("small.author::text").extract_first()
... tags = quote.css("div.tags a.tag::text").extract()
... print(dict(text=text, author=author, tags=tags))`
我尝试过使用 XPath 编写:
In [83]: for quote in response.xpath('//div[@class="quote"]'):
...: text = quote.xpath('//span[@class="text"]/text()').extract_first()
...: author = quote.xpath('//small[@class="author"]/text()').extract_first()
...: tags= quote.xpath('//div[@class="tags"]/a[@class="tag"]/text()').extract()
...: print(dict(text=text,author=author,tags=tags))`
在 CSS 路径中,我获得了有关不同引号的信息,而在 XPath 中,我在列表中多次获得相同的引号。我做错了什么?
【问题讨论】: