python3.6从含有html代码的json的中取出某个值
python3.6从含有html代码的json的中取出某个值
之前在做接口测试的时候,网站的后端是用java写的,然后接口的response返回的都是json格式,json很简单,就是字典,类似这样子的。

后面跳槽到了另外一家公司,网站是用php写的,接口返回的response格式也是json,不过json里会有一部分是html代码,此时要从html找一个值来验证接口的正确性。还好python3.6里面有一个自带的库可以
帮我们解决这个问题。

接下来就讲一下解决步骤:
- HTMLParser是Python自带的模块,使用简单,能够很容易的实现HTML文件的分析。
本文主要简单讲一下HTMLParser的用法.
使用时需要定义一个从模块
html.parser中的类HTMLParser继承的类,重定义函数:handle_starttag( tag, attrs)handle_startendtag( tag, attrs)handle_endtag( tag)handle_data(data)
1. 获取标签属性
tag是的html标签,attrs是 (属性,值)元组(tuple)的列表(list).
如一个标签为:
<input type="hidden" name="NXX" id="IDXX" value="VXX" />
那么它的attrs列表为
`[(‘type’, ‘hidden’), (‘name’, ‘NXX’), (‘id’, ‘IDXX’), (‘value’, ‘VXX’)]
import requests
from html.parser import HTMLParser
"""需求:response里面的oriprice的值""" class mytest(HTMLParser):
#继承HTMLParser类
def __init__(self):
#用父类的__init__
HTMLParser.__init__(self)
def handle_starttag(self, tag, attrs):
# 重写handle_starttag方法
if tag=="span":
for key,values in attrs:
if key=="oriprice":
print(values) if __name__=="__main__":
data = requests.get("https://www.newchic.com/ajaxload/ajax-ajaxProductDetails.html?products_id=1148331&qt=1517921055502")
print(data.json())
print(type(data.json()))
print(data.json()['ajaxWhichPrice']) re=mytest()
re.feed(data.json()['ajaxWhichPrice'])

python3.6从含有html代码的json的中取出某个值的更多相关文章
- 从JSON数据中取出相关数据
参考: http://www.cnblogs.com/shuilangyizu/p/6019561.html JSON数据如下: { "total": 1, "rows& ...
- 用java代码将从数据库中取出的具有父子关系的数据转成json格式
思路:①.取出数据中的所有父节点放入一个集合中②.取出数据中所有为该父节点的子节点放入另一个集合中③.用到迭代的方法将子节点一层一层的遍历工具类:package com.assasion.test;i ...
- C#获取Json字符串中的某个值
问题描述: json数据格式{"resCode":0,"resMag":"aaa","data":[{"par ...
- C#修改json文件中的某些值
using Newtonsoft.Json; JsonSerializer serialiser = new JsonSerializer(); string newContent = string. ...
- 修改json数据中key(键值)
//方法一:修改JSONObject的键 public static JSONObject changeJsonObj(JSONObject jsonObj,Map<String, String ...
- json包中的Marshal&Unmarshal 文档译本
Marshal func Marshal(v interface{})([]byte, error) Marshal returns the JSON encoding of v. Marshal返回 ...
- 第三天,爬取伯乐在线文章代码,编写items.py,保存数据到本地json文件中
一. 爬取http://blog.jobbole.com/all-posts/中的所有文章 1. 编写jobbole.py简单代码 import scrapy from scrapy. ...
- 在java代码中显示json字符串(怎么避免json字符串中双引号在java代码中显示)
String log = "eyJvcmRlckluZm8iOnsiaWQiOjEwNzQwNCwib3JkZXJJZCI6MjczNjQyMSwicHJvZHVjdENvZGUiOjQ1N ...
- C#调用接口返回json数据中含有双引号 或其他非法字符的解决办法
这几天,调用别人接口返回json数据含有特殊符号(双引号),当转换成json对象总是报错, json字符格式如下 { "BOXINFO":[ { ", "ITE ...
随机推荐
- TabbedPane标签美化式样自定义
JTabbedPane标签美化式样自定义 摘自:https://blog.csdn.net/yuanzihui/article/details/43936795 通过继承BasicTabbedPane ...
- jQuery插件编写学习+实例——无限滚动
最近自己在搞一个网站,需要用到无限滚动分页,想想工作两年有余了,竟然都没有写过插件,实在惭愧,于是简单学习了下jQuery的插件编写,然后分享出来. 先说下基础知识,基本上分为两种,一种是对象级别的插 ...
- LIS问题---HDU1025 Constructing Roads In JGShining's Kingdom
发现这个说的比较通俗: 假设存在一个序列d[1..9] = 2 1 5 3 6 4 8 9 7,可以看出来它的LIS长度为5.下面一步一步试着找出它.我们定义一个序列B,然后令 i = 1 to 9 ...
- 很棒的bootstrap学习网站
http://www.w3cschool.cc/bootstrap/bootstrap-tutorial.html
- Backup--查看备份的历史记录
--==================================================== --查看数据库备份的详细信息:时间存储地址最大/最小LSN SELECT * FROM m ...
- Qt绘制简单的风向玫瑰图代码
1.绘制简单的风向玫瑰图代码2.主要使用QPainter3.在子widget上绘制需要使用widget监视事件 eventfilter update();//更新界面 //镜头12 QPainter ...
- .Net Core 项目引用本地类库方式(一)
最近了解到.NET Core 项目,引用本地类库DLL的方式有三种 1.非同解决方案下的引用,直接引用,浏览,找到对应的DLL,然后确定引用. 这种方式有个不好的地方就是,如果引用的DLL文件里面,也 ...
- C#时常需要调用C++DLL
在合作开发时,C#时常需要调用C++DLL,当传递参数时时常遇到问题,尤其是传递和返回字符串是,现总结一下,分享给大家: VC++中主要字符串类型为:LPSTR,LPCSTR, LPCTSTR, st ...
- StringUtils常用方法介绍
要使用StringUtils类,首先需要导入:import org.apache.commons.lang.StringUtils;这个包 在maven项目中需要添加下面这个依赖: <depen ...
- JDK、JRE、JVM三者关系
一.JDK.JRE.JVM三者的关系 JDK包含了JRE和JVM,JRE包含了JVM,其中JRE中没有javac 附一张官网的详细图: 二.RIA RIA(富客户端):能完成浏览器无法完成的功能,它是 ...