一、需求:
我最近爬虫爬取了一个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模块更快一点,虽然单页比较不出来多大差别,但是实际项目时一弄就是几十万的或者上百万的数据爬取,这时候时间差别就很大了。对比时间如下,至此结束。希望能帮到需要的你。