scrapy 2.3 处理不同的响应格式

2021-06-17 11:56 更新

一旦对所需数据进行响应,如何从中提取所需数据取决于响应类型:

  • 如果响应是HTML或XML,请使用 selectors 像往常一样。
  • 如果响应是json,则使用 ​json.loads()​ 从中加载所需数据 ​response.text​ ::
data = json.loads(response.text)

如果所需数据位于嵌入在JSON数据中的HTML或XML代码内,则可以将该HTML或XML代码加载到 ​Selector​ 然后 use it 和往常一样:

selector = Selector(data['html'])
  • 如果响应是javascript,或HTML ​<script/>​ 包含所需数据的元素,请参见 分析javascript代码 .
  • 如果响应是css,请使用 regular expression 从中提取所需数据 ​response.text​ .
  • 如果响应是基于图像的图像或其他格式(例如PDF),则从 ​response.body​ 并使用OCR解决方案将所需数据提取为文本。例如,您可以使用 pytesseract. 要从PDF中读取表格, tabula-py 可能是更好的选择。
  • 如果响应是SVG,或者带有包含所需数据的嵌入式SVG的HTML,则可以使用 selectors ,因为SVG是基于XML的。否则,可能需要将SVG代码转换为栅格图像,并且 handle that raster image .


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号