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 ...
随机推荐
- jqentitymanage
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Reflect ...
- A. Xor-tree
题目意思: 给一颗n个节点的树,每个节点有一个值要么是0要么是1,改变某个节点的值时,它的儿子不变,它儿子的儿子翻转,它儿子的儿子的儿子不变,如此类推.给定各个节点的目标值,求最少的翻转次数,使得达到 ...
- Usage of the @ (at) sign in ASP.NET
from:http://www.mikesdotnetting.com/article/258/usage-of-the-at-sign-in-asp-net Thursday, January 22 ...
- 如何在sqlserver 的函数或存储过程中抛出异常。
raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql server 2005的帮助 ] 其语法如下: RAISERROR ( { msg_id | msg_s ...
- indexOf(String.indexOf 方法)
字符串的IndexOf()方法搜索在该字符串上是否出现了作为参数传递的字符串,如果找到字符串,则返回字符的起始位置 (0表示第一个字符,1表示第二个字符依此类推)如果说没有找到则返回 -1 返回 St ...
- IOException while loading persisted sessions: java.io.EOFException
运行eclipse启动服务器的时候,出现了IOException while loading persisted sessions: java.io.EOFException报错.本以为是代码修改出现 ...
- vs2010 在win8附加进程调试小技巧
在win8 附加进程居然找不到 我要的是iis 名为HKFlight的web的进程(下面2个勾也勾上了,就是找不到它)(下图是管理员身份运行截图) 解决方法:打开vs2010 用管理员身份打开...其 ...
- [.net 多线程]CountdownEvent
System.Threading.CountdownEvent 是一个同步基元,它在收到一定次数的信号之后,将会解除对其等待线程的锁定.CountdownEvent在初始化时有一个初始计数量,在每个工 ...
- Qt信号与槽 如何写2个类,一个发送信号,一个接收并处理
题目: 假设要做2个类,一个类的值提供一个函数SetValue,当这个值发生变化时,假设>10就触发告警调用B的函数; ------------------------------------- ...
- 【bzoj3998】弦论 后缀自动机
Description 对于一个给定长度为N的字符串,求它的第K小子串是什么. Input 第一行是一个仅由小写英文字母构成的字符串S 第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个. ...