Scrapy shell提取响应. css返回[]

o2g1uqev  于 2023-03-08  发布在  Shell
关注(0)|答案(2)|浏览(199)

我正在学习刮痧,我想了解一些关于这个药的信息:https://www.apotheken-umschau.de/medikamente/beipackzettel/azithromycin-al-250-mg-filmtabletten-1805007.html在用Python编写spider之前,我使用scrapy shell从标题开始:

<h1 class="headline mb-3 fw-bolder">Beipackzettel von AZITHROMYCIN AL 250 mg Filmtabletten</h1>

并尝试:

fetch('https://www.apotheken-umschau.de/medikamente/beipackzettel/azithromycin-al-250-mg-filmtabletten-1805007.html')

然后:

response.css('h1.headline mb-3 fw-bolder').getall()

知道为什么我得到[]吗?谢谢。

vojdkbi0

vojdkbi01#

你得到一个空列表的原因是因为你的css选择器不正确。当使用css选择器时,class属性中用空格分隔的单词应该在选择器中用句点分隔。
例如:

>>> response.css('h1.headline.mb-3.fw-bolder').getall()
['<h1 class="headline mb-3 fw-bolder">Beipackzettel von AZITHROMYCIN AL 250 mg Filmtabletten</h1>']

如您所见,只需将空格替换为.即可得到元素。
由于只有一个h1元素,因此您的选择器可以简化为:

>>> response.css('h1::text').getall()
['Beipackzettel von AZITHROMYCIN AL 250 mg Filmtabletten']

或者可以像这样使用xpath

response.xpath('//h1/text()').get()
np8igboo

np8igboo2#

试试这个。

response.css('h1.headline ::text').getall()

输出:

['Beipackzettel von AZITHROMYCIN AL 250 mg Filmtabletten']

相关问题