在上一篇文章中知道了异步请求的URL,就可以通过requests等网络库通过URL抓取数据,不过返回的数据格式不是HTML,也不是XML,而是JSON。所以不能使用XPath和CSS选择器处理,而是使用json模块中的loads函数将字符串形式的JSON转换为Python字典。
下面的例子使用requests库访问了页面异步访问的URL,并将返回数据转换为Python字典,最后输出了返回的所有视频课程名称。
import requests
import json
from lxml import etree
result = requests.get('http://localhost:1234/data')
# 由于返回的数据包含中文(unicode编码),所以需要将其转码
text = result.text.encode('utf-8').decode('unicode-escape')
print(text)
# 将字符串形式的JSON转换为Python字典
data = json.loads(text)
print('个数:',len(data))
# 输出返回的所有视频课程名称
for value in data:
print(value['name'])