codecamp

scrapy 2.3 处理不同的响应格式

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

  • 如果响应是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 .


scrapy 2.3 复制请求
scrapy 2.3 分析javascript代码
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

scrapy 2.3 链接提取器

scrapy 2.3 统计数据集合

scrapy 2.3 发送电子邮件

scrapy 2.3 蜘蛛合约

scrapy 2.3 如何部署蜘蛛

scrapy 2.3 AutoThrottle扩展

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }