【发布时间】:2019-07-21 11:48:58
【问题描述】:
我正在使用 Scrapy 抓取一个网站,它以字符串格式返回 json 类型文件。
当我使用下面的选择器时,我会按预期在列表中获得完整的数据。
response.xpath('//p/text()').extract()
此列表中的数据是一个类似 json 的字符串,我需要将其转换为我正在使用的字典json.loads()
但是当我使用下面的选择器来获取列表中存在的类似 json 的字符串时,就会出现问题。
response.xpath('//p/text()').extract_first()
这给出了部分截断的字符串作为输出,因此json.loads() 给出了未终止字符串的错误。
注意:我尝试了类似的选择器,如 .extract()[0], getall()[0] 等。都遇到了同样的问题。
打印时也会打印截断的部分字符串。
【问题讨论】:
-
您能否提供更多详细信息?至少要抓取的网站的 URL。它可能是也可能不是 parsel 库中的错误。
-
响应是否在每个
<p>中包含单独的 Javascript 块?是否可以粘贴或链接示例? -
@Sitanshu.K 该 URL 已返回 JSON 响应。为什么要用 XPath 提取它?
-
"api.bseindia.com/BseIndiaAPI/api/AnnGetData/…" 这是我正在抓取的网址。@Tomáš Linhart
-
我想过滤通过它接收到的数据。我正在为此使用管道。