一、需求:

我最近爬虫爬取了一个json数据,里面的是html格式,但是爬到之后,响应内容是json格式,让我纠结了好久不知道怎么转换:
(比如)

"title": "2019年\u003cem\u003epython\u003c/em\u003e、golang、java、c++如何选择?"

对应内容是:

"title": "2019年<em>python</em>、golang、java、c++如何选择?"

二、处理(很简单)

直接使用python的json模块反序列化,loads()功能就行了,返回json格式,进行层级寻找想要数据就行了。

在这里插入图片描述
在这里插入图片描述

三、使用lxml模块或者pyquery模块处理html

需求:

想把:
2019年python、golang、java、c++如何选择?
处理成:
2019年python、golang、java、c++如何选择?

方法1、使用pyquery模块

from pyquery import PyQuery as pq

title = "2019年<em>python</em>、golang、java、c++如何选择?"
json_one["title"] = pq(title).text()

这样输出就达到自己想要的纯文本了。

在这里插入图片描述
在这里插入图片描述

方法2、使用lxml 模块的etree

from lxml import etree

title = "2019年<em>python</em>、golang、java、c++如何选择?"
json_one["title"] = ''.join(etree.HTML(title).xpath('//text()'))

这样也得到想要的纯文本了。

方法比较:

因为开发爬虫对效率有时候要求高,我测试了一页,俩着用时(包括爬取json的总时间),lxml模块更快一点,虽然单页比较不出来多大差别,但是实际项目时一弄就是几十万的或者上百万的数据爬取,这时候时间差别就很大了。对比时间如下,至此结束。希望能帮到需要的你。

在这里插入图片描述
在这里插入图片描述