有一个优秀的库可以使用————demjson

目标链接

请求上面链接,会得到如下图的一个js文件

我们需要把这个js文件转成为dict,方便提取其中需要的字段(这在爬虫任务中非常常见)

失败的方法

传统方法

通常转js文件为dict的过程:

1.先通过切片掐头去尾,去掉头部的 “callarea(” 和尾部的 “)” 。

2.再次导入json这个库,使用loads,json.loads(resposne.text[9:-1]),实现json转dict。

但是,这个方法在这里行不通。

import requests

import json

url = 'http://fcd.5173.com/commondata/Category.aspx?type=area&cache=&id=20c8bbc1b9794fc98bd96859624d4769&jsoncallback=callarea'

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36',

}

resposne = requests.get(url, headers=headers)

print(json.loads(resposne.text[9:-1]))

错误原因

js文件并不一定是json的超集,这此处的js文件key不包含双引号,value中的内容是单引号。

上诉方法行得通的前提是这个js需要时json的超集,key和value都由双引号包围。

天无绝人之路

通过demjson可以一步到位

import requests

import demjson

url = 'http://fcd.5173.com/commondata/Category.aspx?type=area&cache=&id=20c8bbc1b9794fc98bd96859624d4769&jsoncallback=callarea'

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36',

}

resposne = requests.get(url, headers=headers)

for item in demjson.decode(resposne.text[9:-1]):

id = item.get('id')

name = item.get('name')

print(id, name)

得到如下结果

写代码千万不要睡着了

python js返回 json_[python爬虫]把js转化成json相关推荐

  1. python爬虫处理js混淆加密_Python爬虫—破解JS加密的Cookie

    專 欄 ❈Jerry,Python中文社区专栏作者. blog:https://my.oschina.net/jhao104/blog github:https://github.com/jhao10 ...

  2. python爬虫遇到js加密_当爬虫遇到js加密

    目标网站:http://tool.liumingye.cn/music/?type=qq&name=%E4%BD%A0%E5%A5%BD(测试) 在谷歌浏览器输入该网址之后,打开F12开发者工 ...

  3. python js返回 json_如何使用 Python 得到网页返回正确的 Json 数据

    展开全部 以下代码调试通过:62616964757a686964616fe58685e5aeb931333363353764import pandas as pd import json demo = ...

  4. python解析多层嵌套json_Python爬虫解析多个嵌套JSON,多级,json

    Python爬虫解析多级嵌套json 最近刚接触Python爬虫,正好最近肺炎在全国蔓延,所以准备从网站爬取肺炎实时数据,并解析自己想要的数据.获取json数据网址为 https://m.look.3 ...

  5. java页面后退代码,JS后退一页, JS返回上一页代码, JS返回下一页,JS返回第几页,JS页面跳转...

    Javascript 返回上一页: 1. history.go(-1), 返回两个页面: history.go(-2); 2. history.back(). 3. window.history.fo ...

  6. js 返回上一页面_pdf.js实战,含水印、电子签章解决方案

    项目涉及到移动端查看电子合同的问题,前前后后试了三种方案,真是一步一个坑,三种方案各有各的优点,不水,直接上代码,按照自己的需求选择. 一.pdf-vue 直接使用vue-pdf插件,核心的代码是pd ...

  7. js返回计算机ip地址吗,js获取电脑IP地址???电脑连WIFI的

    下面是获取计算机名Mac地址和IP的代码HTML> js获取本机mac地址,IP地址,计算机名

  8. Python 函数式编程,Python中内置的高阶函数:map()、reduce()、filter()与sorted(),Python中返回函数

    函数式编程 是一种编程范式,比函数更高层次的抽象. 函数式编程将计算视为函数而非指令. 纯函数式编程:不需要变量,没有副作用,测试简单. 支持高阶函数,代码简洁. Python 支持的函数式编程 不是 ...

  9. html匀速回到顶部,原生js返回顶部(匀速、由快到慢)

    在项目中我们经常有需求要求页面滚动到一定位置时出现返回顶部按钮,点击即返回顶部. 方法一: 锚点,这是最简单的.(a标签的href属性等于一直要到达位置元素的id值) 方法二: js直接给页面根节点设 ...

最新文章

  1. 集群四 mysql-5.7.16一键安装
  2. ONAP — CCVPN 跨域 SDN 协同编排
  3. android 骨架屏刷新动画,ios - 原生骨架屏,网络加载过渡动画的封装
  4. 可再生能源建设提速 风电光伏业高景气可期
  5. 软件开发报价的计算方法[转载]
  6. 华科计算机考研复试机试【零散大汇总】
  7. 不同.net版本实现单点登录
  8. 【BZOJ2809】【codevs1763】派遣,主席树记录前缀和
  9. 软件安装下载的镜像站、国内源
  10. 如何清洁和消毒Mac笔记本电脑?
  11. 17. 信号量,共享内存和消息队列
  12. 视频和视频帧:H264编码格式整理
  13. sniffer抓包工具(中文版+视频教程)
  14. PEG衍生物Azide-PEG-NHS,N3-PEG-NHS,叠氮-聚乙二醇-活性酯
  15. lucene最新版本下载地址(找死我了)
  16. 【数据库】聊一下数据库的锁机制
  17. ThinkPad笔记本无法调节亮度
  18. 全国计算机等级考试评分标准,全国计算机等级考试评分标准
  19. 中国橱柜行业品牌营销策略与竞争态势研究报告2022版
  20. 知乎搜索文本相关性与知识蒸馏

热门文章

  1. Datatables 给行绑定选中事件
  2. slf4j的简单用法以及与log4j的区别
  3. 从零开始搭建自己的VueJS2.0+ElementUI单页面网站(一、环境搭建)
  4. html页面通过特殊链接:打电话,发短信,发邮件详细教程
  5. Python的函数参数传递:传值?引用?
  6. VC6编译卡死之解决办法
  7. [react] 使用webpack打包React项目,怎么减小生成的js大小?
  8. Module build failed (from ./node_modules/babel-loader/lib/index.js): Error: [BABEL] D:\moblie\web_co
  9. [css] css的负边距有哪些应用场景?
  10. [js]写一个获取非行间样式的方法